@memberjunction/core-actions 5.33.0 → 5.34.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 +8 -0
- package/dist/custom/geo/scheduled-geocoding.action.d.ts +14 -4
- package/dist/custom/geo/scheduled-geocoding.action.d.ts.map +1 -1
- package/dist/custom/geo/scheduled-geocoding.action.js +52 -9
- package/dist/custom/geo/scheduled-geocoding.action.js.map +1 -1
- package/dist/custom/search/scoped-search.action.d.ts +143 -0
- package/dist/custom/search/scoped-search.action.d.ts.map +1 -0
- package/dist/custom/search/scoped-search.action.js +572 -0
- package/dist/custom/search/scoped-search.action.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -30
package/README.md
CHANGED
|
@@ -86,6 +86,14 @@ Several abstract base classes reduce duplication across related actions:
|
|
|
86
86
|
|
|
87
87
|
The file `src/generated/action_subclasses.ts` contains actions produced by the MJ CodeGen system from natural-language `UserPrompt` descriptions stored in the database. Generated actions use a **composition pattern** -- they always extend `BaseAction` (never their parent action class) and invoke the parent action via `ActionEngineServer.Instance.RunAction()` at runtime. See the [parent README](../README.md) for details on the generated/child action architecture.
|
|
88
88
|
|
|
89
|
+
### Scheduled Geocoding (`Scheduled Geocoding` action)
|
|
90
|
+
|
|
91
|
+
`src/custom/geo/scheduled-geocoding.action.ts` is a safety-net maintenance action that finds records in geo-enabled entities (`Entity.SupportsGeoCoding = 1`) missing a `RecordGeoCode` row, retries failed geocoding attempts, and cleans up orphaned `RecordGeoCode` rows. **Live geocoding-on-save runs inline via `BaseEntity.OnSaveCompleted`** — this scheduled action is only needed to catch records inserted via bulk SQL imports or direct DB writes that bypass `BaseEntity.Save()`.
|
|
92
|
+
|
|
93
|
+
The "find missing records" phase uses **keyset (seek) pagination** when the target entity has a single-column orderable PK (the common case for MJ entities). This keeps each page O(log N) regardless of how deep the iteration goes — important on multi-million-row entities like `Tax Returns`. Composite-PK entities fall back to `StartRow`-based OFFSET pagination automatically. See **[KEYSET_PAGINATION_GUIDE.md](../../../guides/KEYSET_PAGINATION_GUIDE.md)** for the pattern.
|
|
94
|
+
|
|
95
|
+
Default cadence is **Saturday 2 AM UTC** (configured in `metadata/scheduled-jobs/.geocoding-maintenance-job.json`). Administrators can adjust the `CronExpression` per environment.
|
|
96
|
+
|
|
89
97
|
### Configuration
|
|
90
98
|
|
|
91
99
|
External API keys used by certain actions (Perplexity, Google Custom Search, Gamma) are loaded from `mj.config.cjs` or environment variables via the `config.ts` module:
|
|
@@ -58,11 +58,21 @@ export declare class ScheduledGeocodingAction extends BaseAction {
|
|
|
58
58
|
*/
|
|
59
59
|
private processMissingForEntity;
|
|
60
60
|
/**
|
|
61
|
-
* Load a single page of entity records
|
|
62
|
-
*
|
|
63
|
-
*
|
|
61
|
+
* Load a single page of entity records using **keyset (seek) pagination**.
|
|
62
|
+
*
|
|
63
|
+
* Each page costs O(log N) regardless of depth because the server resolves
|
|
64
|
+
* `WHERE pk > @lastSeen ORDER BY pk LIMIT N` as a clustered-index seek — the
|
|
65
|
+
* deeper-page slowdown of OFFSET-based pagination doesn't apply.
|
|
66
|
+
*
|
|
67
|
+
* On the first page, `lastSeenKey` is undefined and the query reduces to
|
|
68
|
+
* `WHERE (filter) ORDER BY pk LIMIT N`.
|
|
69
|
+
*/
|
|
70
|
+
private loadEntityPageKeyset;
|
|
71
|
+
/**
|
|
72
|
+
* Load a single page using OFFSET-based pagination — the fallback path for entities
|
|
73
|
+
* with composite primary keys. Slower on deep pages but correctness is preserved.
|
|
64
74
|
*/
|
|
65
|
-
private
|
|
75
|
+
private loadEntityPageOffset;
|
|
66
76
|
/**
|
|
67
77
|
* Retry failed geocoding attempts using pagination.
|
|
68
78
|
* Loads pages of failed RecordGeoCode rows, then loads source entity records
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-geocoding.action.d.ts","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduled-geocoding.action.d.ts","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAWrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,wBAAyB,SAAQ,UAAU;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAChD,qGAAqG;IACrG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IACnD,oGAAoG;IACpG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAO;cAExB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8CvF;;;;OAIG;YACW,qBAAqB;IA2BnC;;;;;;;;;;OAUG;YACW,uBAAuB;IA+ErC;;;;;;;;;OASG;YACW,oBAAoB;IAwBlC;;;OAGG;YACW,oBAAoB;IA2BlC;;;;OAIG;YACW,oBAAoB;IAkElC;;;OAGG;YACW,kBAAkB;IA6BhC;;;;OAIG;YACW,sBAAsB;IAgDpC;;;;OAIG;YACW,uBAAuB;IAmDrC;;;;;;;;;;;;;;;OAeG;YACW,YAAY;IA2B1B;;;;;;;;;;OAUG;YACW,oBAAoB;IA2BlC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;;;;OASG;YACW,uBAAuB;IAoCrC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,eAAe;CAO1B"}
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var ScheduledGeocodingAction_1;
|
|
8
8
|
import { BaseAction } from '@memberjunction/actions';
|
|
9
9
|
import { RegisterClass, MJGlobal, MJEventType } from '@memberjunction/global';
|
|
10
|
-
import { RunView, Metadata, LogStatus, LogError, CompositeKey, BaseEntity, BaseEntityEvent } from '@memberjunction/core';
|
|
10
|
+
import { RunView, Metadata, LogStatus, LogError, CompositeKey, BaseEntity, BaseEntityEvent, IsKeysetPaginationOrderableType } from '@memberjunction/core';
|
|
11
11
|
import { GeoCodeSyncService } from '@memberjunction/geo-core';
|
|
12
12
|
import { GetDialect } from '@memberjunction/sql-dialect';
|
|
13
13
|
/**
|
|
@@ -122,6 +122,9 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
122
122
|
const pkField = entityInfo.FirstPrimaryKey;
|
|
123
123
|
if (!pkField)
|
|
124
124
|
return { Processed: 0, Success: 0 };
|
|
125
|
+
// Keyset pagination requires a single-column PK. For composite-PK entities, the action
|
|
126
|
+
// falls back to OFFSET-based pagination (slower on deep pages but correct).
|
|
127
|
+
const canUseKeyset = entityInfo.PrimaryKeys.length === 1 && IsKeysetPaginationOrderableType(pkField.Type);
|
|
125
128
|
const geoFields = this.getGeoAddressFields(entityInfo);
|
|
126
129
|
if (geoFields.length === 0)
|
|
127
130
|
return { Processed: 0, Success: 0 };
|
|
@@ -133,10 +136,15 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
133
136
|
const nonNullConditions = geoFields.map(f => `${f.Name} IS NOT NULL`).join(' OR ');
|
|
134
137
|
let totalProcessed = 0;
|
|
135
138
|
let totalSuccess = 0;
|
|
136
|
-
let pageOffset = 0;
|
|
137
|
-
|
|
139
|
+
let pageOffset = 0; // OFFSET-mode (composite-PK fallback)
|
|
140
|
+
let lastSeenKey; // keyset mode
|
|
141
|
+
// Paginate through entity records to avoid loading all into memory at once.
|
|
142
|
+
// Keyset pagination keeps each page O(log N) regardless of depth — a critical
|
|
143
|
+
// win when the entity has millions of rows. See guides/KEYSET_PAGINATION_GUIDE.md.
|
|
138
144
|
while (totalProcessed < maxRows) {
|
|
139
|
-
const pageResult =
|
|
145
|
+
const pageResult = canUseKeyset
|
|
146
|
+
? await this.loadEntityPageKeyset(entityInfo.Name, pkField.Name, nonNullConditions, lastSeenKey, contextUser)
|
|
147
|
+
: await this.loadEntityPageOffset(entityInfo.Name, nonNullConditions, pageOffset, contextUser);
|
|
140
148
|
if (!pageResult.Success || pageResult.Results.length === 0)
|
|
141
149
|
break;
|
|
142
150
|
const pageEntities = pageResult.Results;
|
|
@@ -158,7 +166,17 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
158
166
|
// If this page was smaller than PAGE_SIZE, we've exhausted the entity
|
|
159
167
|
if (pageEntities.length < ScheduledGeocodingAction_1.PAGE_SIZE)
|
|
160
168
|
break;
|
|
161
|
-
|
|
169
|
+
if (canUseKeyset) {
|
|
170
|
+
// Advance the seek cursor to the last record's PK on this page
|
|
171
|
+
const lastRecord = pageEntities[pageEntities.length - 1];
|
|
172
|
+
const lastValue = lastRecord[pkField.Name];
|
|
173
|
+
if (lastValue == null)
|
|
174
|
+
break;
|
|
175
|
+
lastSeenKey = CompositeKey.FromKeyValuePair(pkField.Name, lastValue);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
pageOffset += ScheduledGeocodingAction_1.PAGE_SIZE;
|
|
179
|
+
}
|
|
162
180
|
}
|
|
163
181
|
return { Processed: totalProcessed, Success: totalSuccess };
|
|
164
182
|
}
|
|
@@ -169,11 +187,36 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
169
187
|
}
|
|
170
188
|
}
|
|
171
189
|
/**
|
|
172
|
-
* Load a single page of entity records
|
|
173
|
-
*
|
|
174
|
-
*
|
|
190
|
+
* Load a single page of entity records using **keyset (seek) pagination**.
|
|
191
|
+
*
|
|
192
|
+
* Each page costs O(log N) regardless of depth because the server resolves
|
|
193
|
+
* `WHERE pk > @lastSeen ORDER BY pk LIMIT N` as a clustered-index seek — the
|
|
194
|
+
* deeper-page slowdown of OFFSET-based pagination doesn't apply.
|
|
195
|
+
*
|
|
196
|
+
* On the first page, `lastSeenKey` is undefined and the query reduces to
|
|
197
|
+
* `WHERE (filter) ORDER BY pk LIMIT N`.
|
|
198
|
+
*/
|
|
199
|
+
async loadEntityPageKeyset(entityName, pkColumnName, nonNullFilter, lastSeenKey, contextUser) {
|
|
200
|
+
const rv = new RunView();
|
|
201
|
+
const result = await rv.RunView({
|
|
202
|
+
EntityName: entityName,
|
|
203
|
+
ExtraFilter: `(${nonNullFilter})`,
|
|
204
|
+
OrderBy: pkColumnName,
|
|
205
|
+
MaxRows: ScheduledGeocodingAction_1.PAGE_SIZE,
|
|
206
|
+
AfterKey: lastSeenKey,
|
|
207
|
+
BypassCache: true,
|
|
208
|
+
ResultType: 'entity_object'
|
|
209
|
+
}, contextUser);
|
|
210
|
+
return {
|
|
211
|
+
Success: result.Success,
|
|
212
|
+
Results: result.Success ? result.Results : []
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Load a single page using OFFSET-based pagination — the fallback path for entities
|
|
217
|
+
* with composite primary keys. Slower on deep pages but correctness is preserved.
|
|
175
218
|
*/
|
|
176
|
-
async
|
|
219
|
+
async loadEntityPageOffset(entityName, nonNullFilter, offset, contextUser) {
|
|
177
220
|
const rv = new RunView();
|
|
178
221
|
const result = await rv.RunView({
|
|
179
222
|
EntityName: entityName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-geocoding.action.js","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduled-geocoding.action.js","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { BaseAction } from "@memberjunction/actions";
|
|
3
|
+
/**
|
|
4
|
+
* `__Scoped_Search` — scope-aware universal search for AI agents.
|
|
5
|
+
*
|
|
6
|
+
* Enforces the calling agent's `SearchScopeAccess` setting and restricts the requested
|
|
7
|
+
* scope against the agent's `MJ: AI Agent Search Scopes` rows (Phase IN 'AgentInvoked','Both').
|
|
8
|
+
* Delegates the actual search to `SearchEngine.Search()` with `ScopeIDs: [resolvedScopeID]`.
|
|
9
|
+
*
|
|
10
|
+
* Agent identity is resolved from (in order):
|
|
11
|
+
* 1. The explicit `AgentID` input parameter (most common — passed by the agent executor).
|
|
12
|
+
* 2. `params.Context?.AgentID` (when the agent executor stamps context).
|
|
13
|
+
* 3. `params.Context?.agentID` (lowercased variant used in some execution paths).
|
|
14
|
+
*
|
|
15
|
+
* Enforcement rules (Section 5 of plans/search-scopes-rag-plus.md):
|
|
16
|
+
* - `SearchScopeAccess='None'` → rejects with `ACCESS_DENIED`.
|
|
17
|
+
* - `SearchScopeAccess='Assigned'`:
|
|
18
|
+
* - If `ScopeID` supplied: must match one of the agent's active AgentInvoked/Both rows.
|
|
19
|
+
* - If omitted: uses the agent's `IsDefault=1` row (falling back to lowest Priority).
|
|
20
|
+
* - If the agent has no such rows: rejects with `NO_DEFAULT_SCOPE`.
|
|
21
|
+
* - `SearchScopeAccess='All'`:
|
|
22
|
+
* - If `ScopeID` supplied: used as-is.
|
|
23
|
+
* - If omitted: uses the Global scope.
|
|
24
|
+
*
|
|
25
|
+
* Multi-tenant `SearchContext` (per-call):
|
|
26
|
+
* Two optional inputs assemble a `SearchContext` that is threaded into
|
|
27
|
+
* `SearchParams.SearchContext`. The engine renders the values into every
|
|
28
|
+
* scope-level Nunjucks template (MetadataFilter, ExtraFilter, UserSearchString,
|
|
29
|
+
* FolderPath) at search time — so one scope definition serves many tenants.
|
|
30
|
+
*
|
|
31
|
+
* - `PrimaryScopeRecordID` (string) — primary tenant key (e.g. OrganizationID).
|
|
32
|
+
* Available in templates as `{{ context.PrimaryScopeRecordID }}`.
|
|
33
|
+
* - `SecondaryScopes` (JSON string) — flat object of additional dimensions.
|
|
34
|
+
* Each value must be `string | number | boolean | string[]`. Available in
|
|
35
|
+
* templates as `{{ context.SecondaryScopes.<key> }}`. Incompatible value
|
|
36
|
+
* types are dropped with a log; malformed JSON falls back to undefined
|
|
37
|
+
* rather than failing the call.
|
|
38
|
+
*
|
|
39
|
+
* `SearchContext` is included only when at least one of the two inputs is
|
|
40
|
+
* provided — omitting both preserves the original "no per-call tenant
|
|
41
|
+
* filter" behavior. See `guides/SEARCH_SCOPES_AND_RAG_GUIDE.md` §10 for the
|
|
42
|
+
* full multi-tenant model and template-rendering details.
|
|
43
|
+
*
|
|
44
|
+
* @example Agent tool call
|
|
45
|
+
* ```
|
|
46
|
+
* { "tool": "Scoped Search", "params": { "Query": "refund policy", "AgentID": "<agent-uuid>" } }
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example Per-tenant scoped call
|
|
50
|
+
* ```
|
|
51
|
+
* {
|
|
52
|
+
* "tool": "Scoped Search",
|
|
53
|
+
* "params": {
|
|
54
|
+
* "Query": "Q3 budget approval",
|
|
55
|
+
* "AgentID": "<agent-uuid>",
|
|
56
|
+
* "PrimaryScopeRecordID": "<org-uuid>",
|
|
57
|
+
* "SecondaryScopes": "{\"Department\":\"Finance\",\"Tags\":[\"q3\",\"approved\"]}"
|
|
58
|
+
* }
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class ScopedSearchAction extends BaseAction {
|
|
63
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
64
|
+
/**
|
|
65
|
+
* Step 1 helper — validate `query`, `ContextUser`, resolve the calling
|
|
66
|
+
* agent's ID, and load the agent entity. Returns either the resolved
|
|
67
|
+
* pieces the rest of the pipeline needs or an error response to short-
|
|
68
|
+
* circuit on.
|
|
69
|
+
*/
|
|
70
|
+
private validateInputsAndAgent;
|
|
71
|
+
/**
|
|
72
|
+
* Step 2 helper — resolve the scope through the agent's SearchScopeAccess
|
|
73
|
+
* rule. Logs Forbidden to SearchExecutionLog for ACCESS_DENIED outcomes
|
|
74
|
+
* (P3.2) so the analytics dashboard surfaces agent-side denials. Other
|
|
75
|
+
* resolution failures (NO_DEFAULT_SCOPE, SCOPE_NOT_FOUND) are not access
|
|
76
|
+
* denials and stay out of the Forbidden bucket.
|
|
77
|
+
*/
|
|
78
|
+
private resolveAndLogScope;
|
|
79
|
+
/**
|
|
80
|
+
* Step 3 helper — Phase 2A user-side permission check. Returns null when
|
|
81
|
+
* the user is allowed to invoke; returns a denial response (with a
|
|
82
|
+
* Forbidden SearchExecutionLog row already written) otherwise.
|
|
83
|
+
*
|
|
84
|
+
* Two distinct denial paths:
|
|
85
|
+
* - Resolver Allowed=false ⇒ ACCESS_DENIED (agent-side) or PERMISSION_DENIED (user-side)
|
|
86
|
+
* - Resolver Allowed=true with Level='Read' ⇒ Read grants visibility, not invocation
|
|
87
|
+
*/
|
|
88
|
+
private enforceUserPermission;
|
|
89
|
+
/**
|
|
90
|
+
* Step 4 helper — execute the search via either the synchronous
|
|
91
|
+
* `Search()` path or the streaming `streamSearch()` path. Returns the
|
|
92
|
+
* `SearchResult` plus a `progressEvents` array (only populated when
|
|
93
|
+
* streamingMode='partials').
|
|
94
|
+
*/
|
|
95
|
+
private runSearch;
|
|
96
|
+
/**
|
|
97
|
+
* Step 5 helper — pack the SearchResult into the action's output
|
|
98
|
+
* envelope (Results + counts + scope echo + optional ProgressEvents).
|
|
99
|
+
*/
|
|
100
|
+
private buildSuccessResult;
|
|
101
|
+
private resolveScope;
|
|
102
|
+
/**
|
|
103
|
+
* `SearchScopeAccess='Assigned'` path — agent can only use scopes listed
|
|
104
|
+
* in its `AIAgentSearchScope` rows (Phase IN AgentInvoked|Both). When no
|
|
105
|
+
* explicit scope is requested, picks the row with `IsDefault=true` or
|
|
106
|
+
* the lowest priority.
|
|
107
|
+
*/
|
|
108
|
+
private resolveScopeAssigned;
|
|
109
|
+
/**
|
|
110
|
+
* `SearchScopeAccess='All'` path — agent can use any active scope, or
|
|
111
|
+
* the Global scope (which is "no filter") when no scope is requested.
|
|
112
|
+
*/
|
|
113
|
+
private resolveScopeAll;
|
|
114
|
+
/**
|
|
115
|
+
* Resolve a SearchScope by ID into a successful or `SCOPE_NOT_FOUND`
|
|
116
|
+
* result. Caller can override the not-found message (used for the
|
|
117
|
+
* Assigned-mode "default scope not active" wording).
|
|
118
|
+
*/
|
|
119
|
+
private lookupActiveScope;
|
|
120
|
+
private pickDefaultRow;
|
|
121
|
+
private resolveAgentID;
|
|
122
|
+
private loadAgent;
|
|
123
|
+
private formatResults;
|
|
124
|
+
private getStringParam;
|
|
125
|
+
/**
|
|
126
|
+
* Parse the optional SecondaryScopes input. Accepts a JSON string
|
|
127
|
+
* containing a flat object of dimension keys to values. Values are
|
|
128
|
+
* passed through verbatim; the SearchEngine's Nunjucks render handles
|
|
129
|
+
* type coercion when interpolating into MetadataFilter / ExtraFilter
|
|
130
|
+
* templates. Malformed input is logged and treated as undefined rather
|
|
131
|
+
* than failing the whole search — a stray bad payload shouldn't kill
|
|
132
|
+
* an otherwise-valid query.
|
|
133
|
+
*/
|
|
134
|
+
private parseSecondaryScopes;
|
|
135
|
+
/** Type guard mirroring `SecondaryScopeValue` from @memberjunction/ai-core-plus. */
|
|
136
|
+
private isSecondaryScopeValue;
|
|
137
|
+
private getNumericParam;
|
|
138
|
+
private createErrorResult;
|
|
139
|
+
}
|
|
140
|
+
/** Tree-shake-prevention hook. Call from consumer `public-api.ts` (or the
|
|
141
|
+
* top-level index) to guarantee the `@RegisterClass` side-effect runs. */
|
|
142
|
+
export declare function LoadScopedSearchAction(): void;
|
|
143
|
+
//# sourceMappingURL=scoped-search.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped-search.action.d.ts","sourceRoot":"","sources":["../../../src/custom/search/scoped-search.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAe,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAsCrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBACa,kBAAmB,SAAQ,UAAU;cAE9B,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2DvF;;;;;OAKG;YACW,sBAAsB;IAyBpC;;;;;;OAMG;YACW,kBAAkB;IA+BhC;;;;;;;;OAQG;YACW,qBAAqB;IA4DnC;;;;;OAKG;YACW,SAAS;IAoFvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;YA4BZ,YAAY;IAmB1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;YAeR,SAAS;IAgBvB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,cAAc;IAOtB;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IA4B5B,oFAAoF;IACpF,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;CAO5B;AAED;0EAC0E;AAC1E,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C"}
|
|
@@ -0,0 +1,572 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseAction } from "@memberjunction/actions";
|
|
8
|
+
import { RegisterClass, UUIDsEqual } from "@memberjunction/global";
|
|
9
|
+
import { LogError, LogStatusEx, IsVerboseLoggingEnabled, Metadata } from "@memberjunction/core";
|
|
10
|
+
import { SearchEngine, SearchScopePermissionResolver } from "@memberjunction/search-engine";
|
|
11
|
+
import { SearchEngineBase } from "@memberjunction/core-entities";
|
|
12
|
+
/**
|
|
13
|
+
* `__Scoped_Search` — scope-aware universal search for AI agents.
|
|
14
|
+
*
|
|
15
|
+
* Enforces the calling agent's `SearchScopeAccess` setting and restricts the requested
|
|
16
|
+
* scope against the agent's `MJ: AI Agent Search Scopes` rows (Phase IN 'AgentInvoked','Both').
|
|
17
|
+
* Delegates the actual search to `SearchEngine.Search()` with `ScopeIDs: [resolvedScopeID]`.
|
|
18
|
+
*
|
|
19
|
+
* Agent identity is resolved from (in order):
|
|
20
|
+
* 1. The explicit `AgentID` input parameter (most common — passed by the agent executor).
|
|
21
|
+
* 2. `params.Context?.AgentID` (when the agent executor stamps context).
|
|
22
|
+
* 3. `params.Context?.agentID` (lowercased variant used in some execution paths).
|
|
23
|
+
*
|
|
24
|
+
* Enforcement rules (Section 5 of plans/search-scopes-rag-plus.md):
|
|
25
|
+
* - `SearchScopeAccess='None'` → rejects with `ACCESS_DENIED`.
|
|
26
|
+
* - `SearchScopeAccess='Assigned'`:
|
|
27
|
+
* - If `ScopeID` supplied: must match one of the agent's active AgentInvoked/Both rows.
|
|
28
|
+
* - If omitted: uses the agent's `IsDefault=1` row (falling back to lowest Priority).
|
|
29
|
+
* - If the agent has no such rows: rejects with `NO_DEFAULT_SCOPE`.
|
|
30
|
+
* - `SearchScopeAccess='All'`:
|
|
31
|
+
* - If `ScopeID` supplied: used as-is.
|
|
32
|
+
* - If omitted: uses the Global scope.
|
|
33
|
+
*
|
|
34
|
+
* Multi-tenant `SearchContext` (per-call):
|
|
35
|
+
* Two optional inputs assemble a `SearchContext` that is threaded into
|
|
36
|
+
* `SearchParams.SearchContext`. The engine renders the values into every
|
|
37
|
+
* scope-level Nunjucks template (MetadataFilter, ExtraFilter, UserSearchString,
|
|
38
|
+
* FolderPath) at search time — so one scope definition serves many tenants.
|
|
39
|
+
*
|
|
40
|
+
* - `PrimaryScopeRecordID` (string) — primary tenant key (e.g. OrganizationID).
|
|
41
|
+
* Available in templates as `{{ context.PrimaryScopeRecordID }}`.
|
|
42
|
+
* - `SecondaryScopes` (JSON string) — flat object of additional dimensions.
|
|
43
|
+
* Each value must be `string | number | boolean | string[]`. Available in
|
|
44
|
+
* templates as `{{ context.SecondaryScopes.<key> }}`. Incompatible value
|
|
45
|
+
* types are dropped with a log; malformed JSON falls back to undefined
|
|
46
|
+
* rather than failing the call.
|
|
47
|
+
*
|
|
48
|
+
* `SearchContext` is included only when at least one of the two inputs is
|
|
49
|
+
* provided — omitting both preserves the original "no per-call tenant
|
|
50
|
+
* filter" behavior. See `guides/SEARCH_SCOPES_AND_RAG_GUIDE.md` §10 for the
|
|
51
|
+
* full multi-tenant model and template-rendering details.
|
|
52
|
+
*
|
|
53
|
+
* @example Agent tool call
|
|
54
|
+
* ```
|
|
55
|
+
* { "tool": "Scoped Search", "params": { "Query": "refund policy", "AgentID": "<agent-uuid>" } }
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @example Per-tenant scoped call
|
|
59
|
+
* ```
|
|
60
|
+
* {
|
|
61
|
+
* "tool": "Scoped Search",
|
|
62
|
+
* "params": {
|
|
63
|
+
* "Query": "Q3 budget approval",
|
|
64
|
+
* "AgentID": "<agent-uuid>",
|
|
65
|
+
* "PrimaryScopeRecordID": "<org-uuid>",
|
|
66
|
+
* "SecondaryScopes": "{\"Department\":\"Finance\",\"Tags\":[\"q3\",\"approved\"]}"
|
|
67
|
+
* }
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
let ScopedSearchAction = class ScopedSearchAction extends BaseAction {
|
|
72
|
+
async InternalRunAction(params) {
|
|
73
|
+
// Track action-call wall-clock so any Forbidden log row reports
|
|
74
|
+
// accurate latency for "denial took 12ms" telemetry.
|
|
75
|
+
const startTime = Date.now();
|
|
76
|
+
try {
|
|
77
|
+
// 1. Validate inputs + load agent
|
|
78
|
+
const validation = await this.validateInputsAndAgent(params);
|
|
79
|
+
if ('result' in validation)
|
|
80
|
+
return validation.result;
|
|
81
|
+
const { query, agent } = validation;
|
|
82
|
+
// 2. Resolve scope (agent-side SearchScopeAccess gate, with denial logging)
|
|
83
|
+
await SearchEngineBase.Instance.Config(false, params.ContextUser);
|
|
84
|
+
const requestedScopeID = this.getStringParam(params, "scopeid");
|
|
85
|
+
const scopeOutcome = await this.resolveAndLogScope(agent, query, requestedScopeID, params, startTime);
|
|
86
|
+
if ('result' in scopeOutcome)
|
|
87
|
+
return scopeOutcome.result;
|
|
88
|
+
const { scope, scopeID } = scopeOutcome;
|
|
89
|
+
// 3. User-side permission check (Phase 2A) + Read-level gate, with denial logging
|
|
90
|
+
const permDenial = await this.enforceUserPermission(agent, scopeID, query, params, startTime);
|
|
91
|
+
if (permDenial)
|
|
92
|
+
return permDenial;
|
|
93
|
+
// 4. Run the search (sync or streaming)
|
|
94
|
+
const maxResults = this.getNumericParam(params, "maxresults", 25);
|
|
95
|
+
const minScore = this.getNumericParam(params, "minscore", 0);
|
|
96
|
+
const streamingMode = (this.getStringParam(params, "streamingmode") ?? 'finalOnly').toLowerCase();
|
|
97
|
+
// Per-call multi-tenant context. PrimaryScopeRecordID is the
|
|
98
|
+
// primary tenant key (e.g. OrganizationID). SecondaryScopes is
|
|
99
|
+
// an opaque JSON object of additional dimensions; each key
|
|
100
|
+
// becomes `{{ context.SecondaryScopes.<key> }}` available to
|
|
101
|
+
// the scope's Nunjucks-rendered MetadataFilter / ExtraFilter /
|
|
102
|
+
// UserSearchString / FolderPath. Dimensions are fully dynamic
|
|
103
|
+
// here — validation against scope.SearchContextConfig.dimensions
|
|
104
|
+
// (if desired) is the engine's responsibility, not the action's.
|
|
105
|
+
const primaryScopeRecordID = this.getStringParam(params, "primaryscoperecordid");
|
|
106
|
+
const secondaryScopes = this.parseSecondaryScopes(params);
|
|
107
|
+
LogStatusEx({
|
|
108
|
+
message: `ScopedSearchAction: Agent="${agent.Name}" scope="${scope?.Name ?? 'Global'}" query="${query}" streamingMode="${streamingMode}" primaryScopeRecordID="${primaryScopeRecordID ?? ''}" secondaryScopeKeys=[${Object.keys(secondaryScopes ?? {}).join(',')}]`,
|
|
109
|
+
verboseOnly: true,
|
|
110
|
+
isVerboseEnabled: IsVerboseLoggingEnabled
|
|
111
|
+
});
|
|
112
|
+
const exec = await this.runSearch({
|
|
113
|
+
query, maxResults, minScore, scopeID, agent,
|
|
114
|
+
contextUser: params.ContextUser, streamingMode,
|
|
115
|
+
primaryScopeRecordID, secondaryScopes,
|
|
116
|
+
});
|
|
117
|
+
if ('result' in exec)
|
|
118
|
+
return exec.result;
|
|
119
|
+
// 5. Build the success response
|
|
120
|
+
return this.buildSuccessResult(exec.sr, scope, scopeID, exec.progressEvents);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
124
|
+
LogError(`ScopedSearchAction error: ${msg}`);
|
|
125
|
+
return this.createErrorResult(`Unexpected error during scoped search: ${msg}`, "UNEXPECTED_ERROR");
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Step 1 helper — validate `query`, `ContextUser`, resolve the calling
|
|
130
|
+
* agent's ID, and load the agent entity. Returns either the resolved
|
|
131
|
+
* pieces the rest of the pipeline needs or an error response to short-
|
|
132
|
+
* circuit on.
|
|
133
|
+
*/
|
|
134
|
+
async validateInputsAndAgent(params) {
|
|
135
|
+
const query = this.getStringParam(params, "query");
|
|
136
|
+
if (!query) {
|
|
137
|
+
return { ok: false, result: this.createErrorResult("Query parameter is required", "MISSING_QUERY") };
|
|
138
|
+
}
|
|
139
|
+
if (!params.ContextUser) {
|
|
140
|
+
return { ok: false, result: this.createErrorResult("User context is required", "MISSING_USER_CONTEXT") };
|
|
141
|
+
}
|
|
142
|
+
const agentID = this.resolveAgentID(params);
|
|
143
|
+
if (!agentID) {
|
|
144
|
+
return { ok: false, result: this.createErrorResult("Calling agent identity could not be resolved. Pass the AgentID parameter or stamp params.Context.AgentID before invoking this action.", "MISSING_AGENT_CONTEXT") };
|
|
145
|
+
}
|
|
146
|
+
const agent = await this.loadAgent(agentID, params.ContextUser);
|
|
147
|
+
if (!agent) {
|
|
148
|
+
return { ok: false, result: this.createErrorResult(`Agent "${agentID}" not found.`, "MISSING_AGENT_CONTEXT") };
|
|
149
|
+
}
|
|
150
|
+
return { ok: true, query, agent };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Step 2 helper — resolve the scope through the agent's SearchScopeAccess
|
|
154
|
+
* rule. Logs Forbidden to SearchExecutionLog for ACCESS_DENIED outcomes
|
|
155
|
+
* (P3.2) so the analytics dashboard surfaces agent-side denials. Other
|
|
156
|
+
* resolution failures (NO_DEFAULT_SCOPE, SCOPE_NOT_FOUND) are not access
|
|
157
|
+
* denials and stay out of the Forbidden bucket.
|
|
158
|
+
*/
|
|
159
|
+
async resolveAndLogScope(agent, query, requestedScopeID, params, startTime) {
|
|
160
|
+
const scopeResolution = await this.resolveScope(agent, requestedScopeID);
|
|
161
|
+
if (!scopeResolution.success) {
|
|
162
|
+
if (scopeResolution.errorCode === 'ACCESS_DENIED') {
|
|
163
|
+
await SearchEngine.Instance.LogForbiddenSearch({
|
|
164
|
+
Query: query,
|
|
165
|
+
// Attribute the denial to the SCOPE the caller asked for
|
|
166
|
+
// (so `WHERE SearchScopeID=<requested>` surfaces it).
|
|
167
|
+
// Falls back to undefined when the agent didn't pass an
|
|
168
|
+
// explicit scope.
|
|
169
|
+
ScopeIDs: requestedScopeID ? [requestedScopeID] : undefined,
|
|
170
|
+
FailureReason: scopeResolution.errorMessage,
|
|
171
|
+
StartTime: startTime,
|
|
172
|
+
ContextUser: params.ContextUser,
|
|
173
|
+
AIAgentID: agent.ID,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return { ok: false, result: this.createErrorResult(scopeResolution.errorMessage, scopeResolution.errorCode) };
|
|
177
|
+
}
|
|
178
|
+
return { ok: true, scope: scopeResolution.scope, scopeID: scopeResolution.scopeID };
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Step 3 helper — Phase 2A user-side permission check. Returns null when
|
|
182
|
+
* the user is allowed to invoke; returns a denial response (with a
|
|
183
|
+
* Forbidden SearchExecutionLog row already written) otherwise.
|
|
184
|
+
*
|
|
185
|
+
* Two distinct denial paths:
|
|
186
|
+
* - Resolver Allowed=false ⇒ ACCESS_DENIED (agent-side) or PERMISSION_DENIED (user-side)
|
|
187
|
+
* - Resolver Allowed=true with Level='Read' ⇒ Read grants visibility, not invocation
|
|
188
|
+
*/
|
|
189
|
+
async enforceUserPermission(agent, scopeID, query, params, startTime) {
|
|
190
|
+
if (!scopeID)
|
|
191
|
+
return null;
|
|
192
|
+
const permResolver = new SearchScopePermissionResolver();
|
|
193
|
+
const verdict = await permResolver.ResolveEffectivePermission({
|
|
194
|
+
User: params.ContextUser,
|
|
195
|
+
SearchScopeID: scopeID,
|
|
196
|
+
Agent: agent,
|
|
197
|
+
ContextUser: params.ContextUser,
|
|
198
|
+
});
|
|
199
|
+
if (!verdict.Allowed) {
|
|
200
|
+
LogStatusEx({
|
|
201
|
+
message: `ScopedSearchAction denied: ${verdict.Reason} (scope=${scopeID}, source=${verdict.Source})`,
|
|
202
|
+
verboseOnly: true,
|
|
203
|
+
isVerboseEnabled: IsVerboseLoggingEnabled
|
|
204
|
+
});
|
|
205
|
+
// ACCESS_DENIED is reserved for agent-side denials so calling code
|
|
206
|
+
// can distinguish "the agent isn't permitted to use this scope"
|
|
207
|
+
// from "the user isn't permitted".
|
|
208
|
+
const isAgentDenial = verdict.Source === 'AgentNone' || verdict.Source === 'AgentAssignedNotListed';
|
|
209
|
+
await SearchEngine.Instance.LogForbiddenSearch({
|
|
210
|
+
Query: query,
|
|
211
|
+
ScopeIDs: [scopeID],
|
|
212
|
+
FailureReason: verdict.Reason ?? 'Permission denied',
|
|
213
|
+
StartTime: startTime,
|
|
214
|
+
ContextUser: params.ContextUser,
|
|
215
|
+
AIAgentID: agent.ID,
|
|
216
|
+
});
|
|
217
|
+
return this.createErrorResult(`Forbidden: ${verdict.Reason}`, isAgentDenial ? 'ACCESS_DENIED' : 'PERMISSION_DENIED');
|
|
218
|
+
}
|
|
219
|
+
// Read level grants metadata visibility but not search execution.
|
|
220
|
+
// Mirror the GraphQL resolvers' gate.
|
|
221
|
+
if (verdict.Level === 'Read') {
|
|
222
|
+
const reason = `User '${params.ContextUser.Name}' has Read-level access on this scope, which permits metadata visibility but not search execution. Search or Manage is required to run a query.`;
|
|
223
|
+
LogStatusEx({
|
|
224
|
+
message: `ScopedSearchAction denied: ${reason} (scope=${scopeID}, source=${verdict.Source})`,
|
|
225
|
+
verboseOnly: true,
|
|
226
|
+
isVerboseEnabled: IsVerboseLoggingEnabled
|
|
227
|
+
});
|
|
228
|
+
await SearchEngine.Instance.LogForbiddenSearch({
|
|
229
|
+
Query: query,
|
|
230
|
+
ScopeIDs: [scopeID],
|
|
231
|
+
FailureReason: reason,
|
|
232
|
+
StartTime: startTime,
|
|
233
|
+
ContextUser: params.ContextUser,
|
|
234
|
+
AIAgentID: agent.ID,
|
|
235
|
+
});
|
|
236
|
+
return this.createErrorResult(`Forbidden: ${reason}`, 'PERMISSION_DENIED');
|
|
237
|
+
}
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Step 4 helper — execute the search via either the synchronous
|
|
242
|
+
* `Search()` path or the streaming `streamSearch()` path. Returns the
|
|
243
|
+
* `SearchResult` plus a `progressEvents` array (only populated when
|
|
244
|
+
* streamingMode='partials').
|
|
245
|
+
*/
|
|
246
|
+
async runSearch(input) {
|
|
247
|
+
// Construct a SearchContext only when the caller supplied at least
|
|
248
|
+
// one runtime dimension. Leaving it undefined preserves the existing
|
|
249
|
+
// "no per-call tenant filter" behavior for callers that never pass
|
|
250
|
+
// these inputs.
|
|
251
|
+
const searchContext = (input.primaryScopeRecordID || (input.secondaryScopes && Object.keys(input.secondaryScopes).length > 0))
|
|
252
|
+
? {
|
|
253
|
+
PrimaryScopeRecordID: input.primaryScopeRecordID,
|
|
254
|
+
SecondaryScopes: input.secondaryScopes,
|
|
255
|
+
}
|
|
256
|
+
: undefined;
|
|
257
|
+
const baseParams = {
|
|
258
|
+
Query: input.query,
|
|
259
|
+
MaxResults: input.maxResults,
|
|
260
|
+
MinScore: input.minScore,
|
|
261
|
+
ScopeIDs: input.scopeID ? [input.scopeID] : undefined,
|
|
262
|
+
Mode: 'full',
|
|
263
|
+
// P3.2 — attribute the search to the calling agent so
|
|
264
|
+
// SearchExecutionLog.AIAgentID is populated. Mirror the pre-
|
|
265
|
+
// execution RAG and Forbidden-path threading.
|
|
266
|
+
AIAgentID: input.agent.ID,
|
|
267
|
+
// Multi-tenant runtime context. The engine renders this into the
|
|
268
|
+
// scope's Nunjucks MetadataFilter / ExtraFilter / UserSearchString
|
|
269
|
+
// / FolderPath fields at search time so a single scope definition
|
|
270
|
+
// can serve many tenants.
|
|
271
|
+
SearchContext: searchContext,
|
|
272
|
+
};
|
|
273
|
+
if (input.streamingMode !== 'partials') {
|
|
274
|
+
const sr = await SearchEngine.Instance.Search(baseParams, input.contextUser);
|
|
275
|
+
if (!sr.Success) {
|
|
276
|
+
return { ok: false, result: this.createErrorResult(sr.ErrorMessage ?? "Search failed with no error message", "SEARCH_FAILED") };
|
|
277
|
+
}
|
|
278
|
+
return { ok: true, sr, progressEvents: [] };
|
|
279
|
+
}
|
|
280
|
+
// Phase 2C: streamingMode='partials' — consume the streaming
|
|
281
|
+
// iterable and accumulate progress events so the agent can observe
|
|
282
|
+
// intermediate provider returns. The aggregate is identical to the
|
|
283
|
+
// synchronous Search() — we collect the 'final' event as authoritative.
|
|
284
|
+
const progressEvents = [];
|
|
285
|
+
let finalEvent;
|
|
286
|
+
let errorMsg;
|
|
287
|
+
for await (const ev of SearchEngine.Instance.streamSearch(baseParams, input.contextUser)) {
|
|
288
|
+
// Skip 'final' event's results from the progress trail to keep
|
|
289
|
+
// the param size sane — the final results are returned via the
|
|
290
|
+
// Results output param anyway.
|
|
291
|
+
if (ev.phase === 'final') {
|
|
292
|
+
finalEvent = { results: ev.results, sourceCounts: ev.sourceCounts, elapsedMs: ev.elapsedMs };
|
|
293
|
+
progressEvents.push({ phase: 'final', count: ev.results.length, elapsedMs: ev.elapsedMs });
|
|
294
|
+
}
|
|
295
|
+
else if (ev.phase === 'provider') {
|
|
296
|
+
progressEvents.push({ phase: 'provider', providerName: ev.providerName, count: ev.results.length, durationMs: ev.durationMs });
|
|
297
|
+
}
|
|
298
|
+
else if (ev.phase === 'fused') {
|
|
299
|
+
progressEvents.push({ phase: 'fused', count: ev.results.length });
|
|
300
|
+
}
|
|
301
|
+
else if (ev.phase === 'reranked') {
|
|
302
|
+
progressEvents.push({ phase: 'reranked', rerankerName: ev.rerankerName, count: ev.results.length });
|
|
303
|
+
}
|
|
304
|
+
else if (ev.phase === 'error') {
|
|
305
|
+
errorMsg = ev.error;
|
|
306
|
+
progressEvents.push({ phase: 'error', error: ev.error });
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (errorMsg || !finalEvent) {
|
|
310
|
+
return { ok: false, result: this.createErrorResult(errorMsg ?? 'Stream completed without a final event', 'SEARCH_FAILED') };
|
|
311
|
+
}
|
|
312
|
+
const sr = {
|
|
313
|
+
Success: true,
|
|
314
|
+
Results: finalEvent.results,
|
|
315
|
+
TotalCount: finalEvent.results.length,
|
|
316
|
+
ElapsedMs: finalEvent.elapsedMs,
|
|
317
|
+
SourceCounts: finalEvent.sourceCounts,
|
|
318
|
+
Providers: [],
|
|
319
|
+
};
|
|
320
|
+
return { ok: true, sr, progressEvents };
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Step 5 helper — pack the SearchResult into the action's output
|
|
324
|
+
* envelope (Results + counts + scope echo + optional ProgressEvents).
|
|
325
|
+
*/
|
|
326
|
+
buildSuccessResult(sr, scope, scopeID, progressEvents) {
|
|
327
|
+
const formatted = this.formatResults(sr.Results);
|
|
328
|
+
const outputParams = [
|
|
329
|
+
{ Name: "Results", Value: formatted, Type: "Output" },
|
|
330
|
+
{ Name: "TotalCount", Value: sr.TotalCount, Type: "Output" },
|
|
331
|
+
{ Name: "ElapsedMs", Value: sr.ElapsedMs, Type: "Output" },
|
|
332
|
+
{ Name: "SourceCounts", Value: sr.SourceCounts, Type: "Output" },
|
|
333
|
+
{ Name: "ScopeID_Resolved", Value: scopeID ?? null, Type: "Output" },
|
|
334
|
+
{ Name: "ScopeName_Resolved", Value: scope?.Name ?? "Global", Type: "Output" }
|
|
335
|
+
];
|
|
336
|
+
if (progressEvents.length > 0) {
|
|
337
|
+
outputParams.push({ Name: 'ProgressEvents', Value: progressEvents, Type: 'Output' });
|
|
338
|
+
}
|
|
339
|
+
return {
|
|
340
|
+
Success: true,
|
|
341
|
+
ResultCode: "SUCCESS",
|
|
342
|
+
Message: `Found ${sr.TotalCount} result(s) in scope "${scope?.Name ?? 'Global'}" in ${sr.ElapsedMs}ms`,
|
|
343
|
+
Params: outputParams
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
// ─── Scope resolution & SearchScopeAccess enforcement ──────────────
|
|
347
|
+
async resolveScope(agent, requestedScopeID) {
|
|
348
|
+
const access = agent.SearchScopeAccess;
|
|
349
|
+
if (access === 'None') {
|
|
350
|
+
return {
|
|
351
|
+
success: false,
|
|
352
|
+
errorCode: 'ACCESS_DENIED',
|
|
353
|
+
errorMessage: `Agent "${agent.Name}" has SearchScopeAccess='None' and cannot invoke scoped search.`,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
if (access === 'Assigned') {
|
|
357
|
+
return this.resolveScopeAssigned(agent, requestedScopeID);
|
|
358
|
+
}
|
|
359
|
+
// access === 'All'
|
|
360
|
+
return this.resolveScopeAll(requestedScopeID);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* `SearchScopeAccess='Assigned'` path — agent can only use scopes listed
|
|
364
|
+
* in its `AIAgentSearchScope` rows (Phase IN AgentInvoked|Both). When no
|
|
365
|
+
* explicit scope is requested, picks the row with `IsDefault=true` or
|
|
366
|
+
* the lowest priority.
|
|
367
|
+
*/
|
|
368
|
+
resolveScopeAssigned(agent, requestedScopeID) {
|
|
369
|
+
const rows = SearchEngineBase.Instance.GetAgentScopes(agent.ID, 'AgentInvoked');
|
|
370
|
+
if (rows.length === 0) {
|
|
371
|
+
return {
|
|
372
|
+
success: false,
|
|
373
|
+
errorCode: 'NO_DEFAULT_SCOPE',
|
|
374
|
+
errorMessage: `Agent "${agent.Name}" has SearchScopeAccess='Assigned' but no active AgentInvoked/Both scopes are configured.`,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
if (requestedScopeID) {
|
|
378
|
+
const allowedRow = rows.find(r => UUIDsEqual(r.SearchScopeID, requestedScopeID));
|
|
379
|
+
if (!allowedRow) {
|
|
380
|
+
return {
|
|
381
|
+
success: false,
|
|
382
|
+
errorCode: 'ACCESS_DENIED',
|
|
383
|
+
errorMessage: `Agent "${agent.Name}" is not permitted to use scope "${requestedScopeID}".`,
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
return this.lookupActiveScope(requestedScopeID);
|
|
387
|
+
}
|
|
388
|
+
// No explicit scope — use default (IsDefault=true) or lowest-priority row
|
|
389
|
+
const def = this.pickDefaultRow(rows);
|
|
390
|
+
if (!def) {
|
|
391
|
+
return {
|
|
392
|
+
success: false,
|
|
393
|
+
errorCode: 'NO_DEFAULT_SCOPE',
|
|
394
|
+
errorMessage: `Agent "${agent.Name}" has no default scope and no ScopeID was provided.`,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
return this.lookupActiveScope(def.SearchScopeID, `Default scope "${def.SearchScopeID}" is not active.`);
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* `SearchScopeAccess='All'` path — agent can use any active scope, or
|
|
401
|
+
* the Global scope (which is "no filter") when no scope is requested.
|
|
402
|
+
*/
|
|
403
|
+
resolveScopeAll(requestedScopeID) {
|
|
404
|
+
if (requestedScopeID) {
|
|
405
|
+
return this.lookupActiveScope(requestedScopeID);
|
|
406
|
+
}
|
|
407
|
+
const global = SearchEngineBase.Instance.GlobalScope;
|
|
408
|
+
return { success: true, scope: global, scopeID: global?.ID };
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Resolve a SearchScope by ID into a successful or `SCOPE_NOT_FOUND`
|
|
412
|
+
* result. Caller can override the not-found message (used for the
|
|
413
|
+
* Assigned-mode "default scope not active" wording).
|
|
414
|
+
*/
|
|
415
|
+
lookupActiveScope(scopeID, notFoundMessage) {
|
|
416
|
+
const scope = SearchEngineBase.Instance.GetActiveScopeByID(scopeID);
|
|
417
|
+
if (!scope) {
|
|
418
|
+
return {
|
|
419
|
+
success: false,
|
|
420
|
+
errorCode: 'SCOPE_NOT_FOUND',
|
|
421
|
+
errorMessage: notFoundMessage ?? `Scope "${scopeID}" is not active or does not exist.`,
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
return { success: true, scope, scopeID: scope.ID };
|
|
425
|
+
}
|
|
426
|
+
pickDefaultRow(rows) {
|
|
427
|
+
const explicit = rows.find(r => r.IsDefault);
|
|
428
|
+
if (explicit)
|
|
429
|
+
return explicit;
|
|
430
|
+
return [...rows].sort((a, b) => a.Priority - b.Priority)[0];
|
|
431
|
+
}
|
|
432
|
+
// ─── Agent identity ────────────────────────────────────────────────
|
|
433
|
+
resolveAgentID(params) {
|
|
434
|
+
const explicit = this.getStringParam(params, "agentid");
|
|
435
|
+
if (explicit)
|
|
436
|
+
return explicit;
|
|
437
|
+
const ctx = params.Context;
|
|
438
|
+
if (ctx) {
|
|
439
|
+
const candidates = ['AgentID', 'agentID', 'agentId'];
|
|
440
|
+
for (const key of candidates) {
|
|
441
|
+
const v = ctx[key];
|
|
442
|
+
if (typeof v === 'string' && v.trim().length > 0)
|
|
443
|
+
return v;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return undefined;
|
|
447
|
+
}
|
|
448
|
+
async loadAgent(agentID, contextUser) {
|
|
449
|
+
try {
|
|
450
|
+
const md = new Metadata(); // global-provider-ok: BaseAction has no bound IMetadataProvider; contextUser is the per-request scope
|
|
451
|
+
const entity = await md.GetEntityObject('MJ: AI Agents', contextUser);
|
|
452
|
+
const loaded = await entity.Load(agentID);
|
|
453
|
+
if (!loaded)
|
|
454
|
+
return null;
|
|
455
|
+
return entity;
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
459
|
+
LogError(`ScopedSearchAction: Failed to load agent "${agentID}": ${msg}`);
|
|
460
|
+
return null;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
// ─── Result formatting ─────────────────────────────────────────────
|
|
464
|
+
formatResults(items) {
|
|
465
|
+
return items.map(item => ({
|
|
466
|
+
ID: item.ID,
|
|
467
|
+
EntityName: item.EntityName,
|
|
468
|
+
RecordID: item.RecordID,
|
|
469
|
+
SourceType: item.SourceType,
|
|
470
|
+
ResultType: item.ResultType,
|
|
471
|
+
Title: item.Title,
|
|
472
|
+
Snippet: item.Snippet,
|
|
473
|
+
Score: item.Score,
|
|
474
|
+
ScoreBreakdown: {
|
|
475
|
+
Vector: item.ScoreBreakdown.Vector,
|
|
476
|
+
FullText: item.ScoreBreakdown.FullText,
|
|
477
|
+
Entity: item.ScoreBreakdown.Entity,
|
|
478
|
+
Storage: item.ScoreBreakdown.Storage
|
|
479
|
+
},
|
|
480
|
+
Tags: item.Tags,
|
|
481
|
+
EntityIcon: item.EntityIcon,
|
|
482
|
+
RecordName: item.RecordName,
|
|
483
|
+
MatchedAt: item.MatchedAt instanceof Date
|
|
484
|
+
? item.MatchedAt.toISOString()
|
|
485
|
+
: String(item.MatchedAt),
|
|
486
|
+
RawMetadata: item.RawMetadata
|
|
487
|
+
}));
|
|
488
|
+
}
|
|
489
|
+
// ─── Parameter extraction helpers ─────────────────────────────────
|
|
490
|
+
getStringParam(params, paramName) {
|
|
491
|
+
const param = params.Params.find(p => p.Name.trim().toLowerCase() === paramName.toLowerCase());
|
|
492
|
+
if (!param || param.Value === undefined || param.Value === null)
|
|
493
|
+
return undefined;
|
|
494
|
+
const value = String(param.Value).trim();
|
|
495
|
+
return value.length > 0 ? value : undefined;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Parse the optional SecondaryScopes input. Accepts a JSON string
|
|
499
|
+
* containing a flat object of dimension keys to values. Values are
|
|
500
|
+
* passed through verbatim; the SearchEngine's Nunjucks render handles
|
|
501
|
+
* type coercion when interpolating into MetadataFilter / ExtraFilter
|
|
502
|
+
* templates. Malformed input is logged and treated as undefined rather
|
|
503
|
+
* than failing the whole search — a stray bad payload shouldn't kill
|
|
504
|
+
* an otherwise-valid query.
|
|
505
|
+
*/
|
|
506
|
+
parseSecondaryScopes(params) {
|
|
507
|
+
const raw = this.getStringParam(params, "secondaryscopes");
|
|
508
|
+
if (!raw)
|
|
509
|
+
return undefined;
|
|
510
|
+
let parsed;
|
|
511
|
+
try {
|
|
512
|
+
parsed = JSON.parse(raw);
|
|
513
|
+
}
|
|
514
|
+
catch (e) {
|
|
515
|
+
LogError(`ScopedSearchAction: SecondaryScopes was not valid JSON; ignoring: ${e instanceof Error ? e.message : String(e)}`);
|
|
516
|
+
return undefined;
|
|
517
|
+
}
|
|
518
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
519
|
+
LogError(`ScopedSearchAction: SecondaryScopes must be a JSON object, got ${Array.isArray(parsed) ? 'array' : typeof parsed} — ignoring.`);
|
|
520
|
+
return undefined;
|
|
521
|
+
}
|
|
522
|
+
// Validate each value against SecondaryScopeValue = string | number | boolean | string[].
|
|
523
|
+
// Drop incompatible entries (with a log) rather than failing the whole call — partial
|
|
524
|
+
// context is more useful than no context.
|
|
525
|
+
const cleaned = {};
|
|
526
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
527
|
+
if (this.isSecondaryScopeValue(value)) {
|
|
528
|
+
cleaned[key] = value;
|
|
529
|
+
}
|
|
530
|
+
else {
|
|
531
|
+
LogError(`ScopedSearchAction: SecondaryScopes key '${key}' has unsupported value type (${Array.isArray(value) ? 'mixed-array' : typeof value}); skipping.`);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
return Object.keys(cleaned).length > 0 ? cleaned : undefined;
|
|
535
|
+
}
|
|
536
|
+
/** Type guard mirroring `SecondaryScopeValue` from @memberjunction/ai-core-plus. */
|
|
537
|
+
isSecondaryScopeValue(value) {
|
|
538
|
+
if (value === null || value === undefined)
|
|
539
|
+
return false;
|
|
540
|
+
const t = typeof value;
|
|
541
|
+
if (t === 'string' || t === 'number' || t === 'boolean')
|
|
542
|
+
return true;
|
|
543
|
+
if (Array.isArray(value))
|
|
544
|
+
return value.every(v => typeof v === 'string');
|
|
545
|
+
return false;
|
|
546
|
+
}
|
|
547
|
+
getNumericParam(params, paramName, defaultValue) {
|
|
548
|
+
const param = params.Params.find(p => p.Name.trim().toLowerCase() === paramName.toLowerCase());
|
|
549
|
+
if (!param || param.Value === undefined || param.Value === null)
|
|
550
|
+
return defaultValue;
|
|
551
|
+
const parsed = Number(param.Value);
|
|
552
|
+
return isNaN(parsed) ? defaultValue : parsed;
|
|
553
|
+
}
|
|
554
|
+
createErrorResult(message, code) {
|
|
555
|
+
return {
|
|
556
|
+
Success: false,
|
|
557
|
+
Message: message,
|
|
558
|
+
ResultCode: code
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
};
|
|
562
|
+
ScopedSearchAction = __decorate([
|
|
563
|
+
RegisterClass(BaseAction, "__Scoped_Search")
|
|
564
|
+
], ScopedSearchAction);
|
|
565
|
+
export { ScopedSearchAction };
|
|
566
|
+
/** Tree-shake-prevention hook. Call from consumer `public-api.ts` (or the
|
|
567
|
+
* top-level index) to guarantee the `@RegisterClass` side-effect runs. */
|
|
568
|
+
export function LoadScopedSearchAction() {
|
|
569
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
570
|
+
const _ref = ScopedSearchAction;
|
|
571
|
+
}
|
|
572
|
+
//# sourceMappingURL=scoped-search.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped-search.action.js","sourceRoot":"","sources":["../../../src/custom/search/scoped-search.action.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -85,4 +85,5 @@ export * from './custom/visualization/shared/svg-theming.js';
|
|
|
85
85
|
export * from './custom/visualization/shared/mermaid-types.js';
|
|
86
86
|
export * from './custom/mcp/index.js';
|
|
87
87
|
export * from './custom/search/search.action.js';
|
|
88
|
+
export * from './custom/search/scoped-search.action.js';
|
|
88
89
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AAGjD,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,yCAAyC,CAAC;AAGxD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AAGvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AAGjE,cAAc,4CAA4C,CAAC;AAG3D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,uDAAuD,CAAC;AACtE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qDAAqD,CAAC;AACpE,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,yDAAyD,CAAC;AACxE,cAAc,sDAAsD,CAAC;AACrE,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,cAAc,CAAC;AAE7B,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -104,4 +104,5 @@ export * from './custom/visualization/shared/mermaid-types.js';
|
|
|
104
104
|
// MCP Actions
|
|
105
105
|
export * from './custom/mcp/index.js';
|
|
106
106
|
export * from './custom/search/search.action.js';
|
|
107
|
+
export * from './custom/search/scoped-search.action.js';
|
|
107
108
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/core-actions",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.34.1",
|
|
5
5
|
"description": "Library of generated and custom actions for the core MemberJunction framework. This library is maintained by MemberJunction and includes actions for use within the framework itself.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -25,35 +25,35 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@asamuzakjp/css-color": "^4.1.2",
|
|
27
27
|
"@dagrejs/dagre": "^1.1.8",
|
|
28
|
-
"@memberjunction/actions": "5.
|
|
29
|
-
"@memberjunction/actions-base": "5.
|
|
30
|
-
"@memberjunction/ai": "5.
|
|
31
|
-
"@memberjunction/ai-mcp-client": "5.
|
|
32
|
-
"@memberjunction/ai-agent-manager": "5.
|
|
33
|
-
"@memberjunction/ai-agents": "5.
|
|
34
|
-
"@memberjunction/ai-betty-bot": "5.
|
|
35
|
-
"@memberjunction/ai-core-plus": "5.
|
|
36
|
-
"@memberjunction/ai-engine-base": "5.
|
|
37
|
-
"@memberjunction/ai-prompts": "5.
|
|
38
|
-
"@memberjunction/ai-vector-sync": "5.
|
|
39
|
-
"@memberjunction/aiengine": "5.
|
|
40
|
-
"@memberjunction/geo-core": "5.
|
|
41
|
-
"@memberjunction/code-execution": "5.
|
|
42
|
-
"@memberjunction/communication-engine": "5.
|
|
43
|
-
"@memberjunction/communication-types": "5.
|
|
44
|
-
"@memberjunction/content-autotagging": "5.
|
|
45
|
-
"@memberjunction/core": "5.
|
|
46
|
-
"@memberjunction/core-entities": "5.
|
|
47
|
-
"@memberjunction/core-entities-server": "5.
|
|
48
|
-
"@memberjunction/export-engine": "5.
|
|
49
|
-
"@memberjunction/external-change-detection": "5.
|
|
50
|
-
"@memberjunction/generic-database-provider": "5.
|
|
51
|
-
"@memberjunction/global": "5.
|
|
52
|
-
"@memberjunction/integration-engine": "5.
|
|
53
|
-
"@memberjunction/search-engine": "5.
|
|
54
|
-
"@memberjunction/sql-dialect": "5.
|
|
55
|
-
"@memberjunction/sqlserver-dataprovider": "5.
|
|
56
|
-
"@memberjunction/storage": "5.
|
|
28
|
+
"@memberjunction/actions": "5.34.1",
|
|
29
|
+
"@memberjunction/actions-base": "5.34.1",
|
|
30
|
+
"@memberjunction/ai": "5.34.1",
|
|
31
|
+
"@memberjunction/ai-mcp-client": "5.34.1",
|
|
32
|
+
"@memberjunction/ai-agent-manager": "5.34.1",
|
|
33
|
+
"@memberjunction/ai-agents": "5.34.1",
|
|
34
|
+
"@memberjunction/ai-betty-bot": "5.34.1",
|
|
35
|
+
"@memberjunction/ai-core-plus": "5.34.1",
|
|
36
|
+
"@memberjunction/ai-engine-base": "5.34.1",
|
|
37
|
+
"@memberjunction/ai-prompts": "5.34.1",
|
|
38
|
+
"@memberjunction/ai-vector-sync": "5.34.1",
|
|
39
|
+
"@memberjunction/aiengine": "5.34.1",
|
|
40
|
+
"@memberjunction/geo-core": "5.34.1",
|
|
41
|
+
"@memberjunction/code-execution": "5.34.1",
|
|
42
|
+
"@memberjunction/communication-engine": "5.34.1",
|
|
43
|
+
"@memberjunction/communication-types": "5.34.1",
|
|
44
|
+
"@memberjunction/content-autotagging": "5.34.1",
|
|
45
|
+
"@memberjunction/core": "5.34.1",
|
|
46
|
+
"@memberjunction/core-entities": "5.34.1",
|
|
47
|
+
"@memberjunction/core-entities-server": "5.34.1",
|
|
48
|
+
"@memberjunction/export-engine": "5.34.1",
|
|
49
|
+
"@memberjunction/external-change-detection": "5.34.1",
|
|
50
|
+
"@memberjunction/generic-database-provider": "5.34.1",
|
|
51
|
+
"@memberjunction/global": "5.34.1",
|
|
52
|
+
"@memberjunction/integration-engine": "5.34.1",
|
|
53
|
+
"@memberjunction/search-engine": "5.34.1",
|
|
54
|
+
"@memberjunction/sql-dialect": "5.34.1",
|
|
55
|
+
"@memberjunction/sqlserver-dataprovider": "5.34.1",
|
|
56
|
+
"@memberjunction/storage": "5.34.1",
|
|
57
57
|
"@types/d3-cloud": "^1.2.9",
|
|
58
58
|
"@types/d3-force": "^3.0.10",
|
|
59
59
|
"@types/d3-hierarchy": "^3.1.7",
|