@memberjunction/server 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 +2 -1
- package/dist/agents/skip-agent.d.ts +3 -1
- package/dist/agents/skip-agent.d.ts.map +1 -1
- package/dist/agents/skip-agent.js +15 -3
- package/dist/agents/skip-agent.js.map +1 -1
- package/dist/generated/generated.d.ts +922 -376
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +5669 -2512
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +1 -1
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +9 -2
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +5 -1
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +33 -2
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/resolvers/AvailableSearchProvidersResolver.d.ts +26 -0
- package/dist/resolvers/AvailableSearchProvidersResolver.d.ts.map +1 -0
- package/dist/resolvers/AvailableSearchProvidersResolver.js +65 -0
- package/dist/resolvers/AvailableSearchProvidersResolver.js.map +1 -0
- package/dist/resolvers/ComponentRegistryResolver.d.ts +11 -25
- package/dist/resolvers/ComponentRegistryResolver.d.ts.map +1 -1
- package/dist/resolvers/ComponentRegistryResolver.js +51 -93
- package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
- package/dist/resolvers/QuerySystemUserResolver.d.ts +18 -0
- package/dist/resolvers/QuerySystemUserResolver.d.ts.map +1 -1
- package/dist/resolvers/QuerySystemUserResolver.js +68 -6
- package/dist/resolvers/QuerySystemUserResolver.js.map +1 -1
- package/dist/resolvers/SearchKnowledgeResolver.d.ts +44 -1
- package/dist/resolvers/SearchKnowledgeResolver.d.ts.map +1 -1
- package/dist/resolvers/SearchKnowledgeResolver.js +217 -7
- package/dist/resolvers/SearchKnowledgeResolver.js.map +1 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts +79 -0
- package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts.map +1 -0
- package/dist/resolvers/SearchKnowledgeStreamResolver.js +342 -0
- package/dist/resolvers/SearchKnowledgeStreamResolver.js.map +1 -0
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +68 -68
- package/src/agents/skip-agent.ts +18 -4
- package/src/generated/generated.ts +4376 -2227
- package/src/generic/ResolverBase.ts +11 -2
- package/src/generic/RunViewResolver.ts +29 -2
- package/src/index.ts +17 -2
- package/src/resolvers/AvailableSearchProvidersResolver.ts +43 -0
- package/src/resolvers/ComponentRegistryResolver.ts +71 -123
- package/src/resolvers/QuerySystemUserResolver.ts +68 -6
- package/src/resolvers/SearchKnowledgeResolver.ts +205 -4
- package/src/resolvers/SearchKnowledgeStreamResolver.ts +338 -0
- package/src/types.ts +6 -1
|
@@ -10,10 +10,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Resolver, Mutation, Arg, Ctx, ObjectType, Field, Float, InputType } from 'type-graphql';
|
|
14
|
-
import {
|
|
13
|
+
import { Resolver, Mutation, Query, Arg, Ctx, ObjectType, Field, Float, InputType, ID } from 'type-graphql';
|
|
14
|
+
import { GraphQLJSON } from 'graphql-type-json';
|
|
15
|
+
import { LogError, LogStatus, Metadata } from '@memberjunction/core';
|
|
15
16
|
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
16
|
-
import { SearchEngine } from '@memberjunction/search-engine';
|
|
17
|
+
import { SearchEngine, SearchScopePermissionResolver } from '@memberjunction/search-engine';
|
|
18
|
+
import { SearchEngineBase } from '@memberjunction/core-entities';
|
|
19
|
+
import { UUIDsEqual } from '@memberjunction/global';
|
|
17
20
|
/* ───── GraphQL types ───── */
|
|
18
21
|
let SearchScoreBreakdown = class SearchScoreBreakdown {
|
|
19
22
|
};
|
|
@@ -215,24 +218,110 @@ SearchFiltersInput = __decorate([
|
|
|
215
218
|
InputType()
|
|
216
219
|
], SearchFiltersInput);
|
|
217
220
|
export { SearchFiltersInput };
|
|
221
|
+
/** Runtime multi-tenant context passed through to `SearchEngine.Search()`. */
|
|
222
|
+
let SearchContextInput = class SearchContextInput {
|
|
223
|
+
};
|
|
224
|
+
__decorate([
|
|
225
|
+
Field({ nullable: true }),
|
|
226
|
+
__metadata("design:type", String)
|
|
227
|
+
], SearchContextInput.prototype, "PrimaryScopeEntityID", void 0);
|
|
228
|
+
__decorate([
|
|
229
|
+
Field({ nullable: true }),
|
|
230
|
+
__metadata("design:type", String)
|
|
231
|
+
], SearchContextInput.prototype, "PrimaryScopeRecordID", void 0);
|
|
232
|
+
__decorate([
|
|
233
|
+
Field(() => GraphQLJSON, { nullable: true }),
|
|
234
|
+
__metadata("design:type", Object)
|
|
235
|
+
], SearchContextInput.prototype, "SecondaryScopes", void 0);
|
|
236
|
+
SearchContextInput = __decorate([
|
|
237
|
+
InputType()
|
|
238
|
+
], SearchContextInput);
|
|
239
|
+
export { SearchContextInput };
|
|
240
|
+
/** Lightweight metadata shape for the scope selector UI. */
|
|
241
|
+
let SearchScopeInfo = class SearchScopeInfo {
|
|
242
|
+
};
|
|
243
|
+
__decorate([
|
|
244
|
+
Field(() => ID),
|
|
245
|
+
__metadata("design:type", String)
|
|
246
|
+
], SearchScopeInfo.prototype, "ID", void 0);
|
|
247
|
+
__decorate([
|
|
248
|
+
Field(),
|
|
249
|
+
__metadata("design:type", String)
|
|
250
|
+
], SearchScopeInfo.prototype, "Name", void 0);
|
|
251
|
+
__decorate([
|
|
252
|
+
Field({ nullable: true }),
|
|
253
|
+
__metadata("design:type", String)
|
|
254
|
+
], SearchScopeInfo.prototype, "Description", void 0);
|
|
255
|
+
__decorate([
|
|
256
|
+
Field({ nullable: true }),
|
|
257
|
+
__metadata("design:type", String)
|
|
258
|
+
], SearchScopeInfo.prototype, "Icon", void 0);
|
|
259
|
+
__decorate([
|
|
260
|
+
Field(),
|
|
261
|
+
__metadata("design:type", Boolean)
|
|
262
|
+
], SearchScopeInfo.prototype, "IsGlobal", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
Field(),
|
|
265
|
+
__metadata("design:type", Boolean)
|
|
266
|
+
], SearchScopeInfo.prototype, "IsDefault", void 0);
|
|
267
|
+
__decorate([
|
|
268
|
+
Field(),
|
|
269
|
+
__metadata("design:type", Boolean)
|
|
270
|
+
], SearchScopeInfo.prototype, "IsPersonal", void 0);
|
|
271
|
+
SearchScopeInfo = __decorate([
|
|
272
|
+
ObjectType()
|
|
273
|
+
], SearchScopeInfo);
|
|
274
|
+
export { SearchScopeInfo };
|
|
218
275
|
/* ───── Resolver (thin wrapper around SearchEngine) ───── */
|
|
219
276
|
let SearchKnowledgeResolver = class SearchKnowledgeResolver extends ResolverBase {
|
|
220
|
-
async SearchKnowledge(query, maxResults, filters, minScore, { userPayload } = {}) {
|
|
277
|
+
async SearchKnowledge(query, maxResults, filters, minScore, scopeIDs, searchContext, agentID, { userPayload } = {}) {
|
|
221
278
|
const startTime = Date.now();
|
|
222
279
|
try {
|
|
223
280
|
const currentUser = this.GetUserFromPayload(userPayload);
|
|
224
281
|
if (!currentUser) {
|
|
225
282
|
return this.errorResult('Unable to determine current user', startTime);
|
|
226
283
|
}
|
|
284
|
+
// Phase 2A enforcement: every scope the caller wants to use must
|
|
285
|
+
// resolve to an Allowed permission for this user (and optionally
|
|
286
|
+
// this agent). Reject the whole call on the first denial — we
|
|
287
|
+
// don't silently drop forbidden scopes because that masks bugs
|
|
288
|
+
// in scope authoring and surprises agents.
|
|
289
|
+
if (scopeIDs && scopeIDs.length) {
|
|
290
|
+
const denied = await this.rejectForbiddenScopes(scopeIDs, currentUser, agentID);
|
|
291
|
+
if (denied) {
|
|
292
|
+
// Emit a Status='Forbidden' SearchExecutionLog row so the
|
|
293
|
+
// analytics dashboard surfaces denied attempts. Best-effort
|
|
294
|
+
// — failures are swallowed by the helper.
|
|
295
|
+
await SearchEngine.Instance.LogForbiddenSearch({
|
|
296
|
+
Query: query,
|
|
297
|
+
ScopeIDs: scopeIDs,
|
|
298
|
+
FailureReason: denied,
|
|
299
|
+
StartTime: startTime,
|
|
300
|
+
ContextUser: currentUser,
|
|
301
|
+
AIAgentID: agentID ?? null,
|
|
302
|
+
});
|
|
303
|
+
return this.errorResult(denied, startTime);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
const mappedContext = searchContext
|
|
307
|
+
? {
|
|
308
|
+
PrimaryScopeEntityID: searchContext.PrimaryScopeEntityID,
|
|
309
|
+
PrimaryScopeRecordID: searchContext.PrimaryScopeRecordID,
|
|
310
|
+
SecondaryScopes: searchContext.SecondaryScopes
|
|
311
|
+
}
|
|
312
|
+
: undefined;
|
|
227
313
|
const result = await SearchEngine.Instance.Search({
|
|
228
314
|
Query: query,
|
|
229
315
|
MaxResults: maxResults,
|
|
230
316
|
MinScore: minScore,
|
|
317
|
+
ScopeIDs: scopeIDs && scopeIDs.length ? scopeIDs : undefined,
|
|
318
|
+
SearchContext: mappedContext,
|
|
231
319
|
Filters: filters ? {
|
|
232
320
|
EntityNames: filters.EntityNames,
|
|
233
321
|
SourceTypes: filters.SourceTypes,
|
|
234
322
|
Tags: filters.Tags
|
|
235
|
-
} : undefined
|
|
323
|
+
} : undefined,
|
|
324
|
+
AIAgentID: agentID ?? null,
|
|
236
325
|
}, currentUser);
|
|
237
326
|
return this.mapSearchResult(result);
|
|
238
327
|
}
|
|
@@ -242,6 +331,116 @@ let SearchKnowledgeResolver = class SearchKnowledgeResolver extends ResolverBase
|
|
|
242
331
|
return this.errorResult(msg, startTime);
|
|
243
332
|
}
|
|
244
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Returns a rejection message if any of the requested scopes are not
|
|
336
|
+
* accessible to (user, agent), or undefined if all are permitted.
|
|
337
|
+
* Resolution goes through SearchScopePermissionResolver — see its docs
|
|
338
|
+
* for the rule order.
|
|
339
|
+
*/
|
|
340
|
+
async rejectForbiddenScopes(scopeIDs, user, agentID) {
|
|
341
|
+
const agent = await this.loadAgent(agentID, user);
|
|
342
|
+
const resolver = new SearchScopePermissionResolver();
|
|
343
|
+
for (const scopeID of scopeIDs) {
|
|
344
|
+
const verdict = await resolver.ResolveEffectivePermission({
|
|
345
|
+
User: user,
|
|
346
|
+
SearchScopeID: scopeID,
|
|
347
|
+
Agent: agent,
|
|
348
|
+
ContextUser: user,
|
|
349
|
+
});
|
|
350
|
+
if (!verdict.Allowed) {
|
|
351
|
+
LogStatus(`SearchKnowledge denied: ${verdict.Reason} (scope=${scopeID}, source=${verdict.Source})`);
|
|
352
|
+
return `Forbidden: ${verdict.Reason}`;
|
|
353
|
+
}
|
|
354
|
+
// Read level grants metadata visibility but not the right to run a
|
|
355
|
+
// search. The SearchScopes query (scope-listing) accepts Read; the
|
|
356
|
+
// SearchKnowledge mutation (actual search) does not.
|
|
357
|
+
if (verdict.Level === 'Read') {
|
|
358
|
+
const reason = `User '${user.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.`;
|
|
359
|
+
LogStatus(`SearchKnowledge denied: ${reason} (scope=${scopeID}, source=${verdict.Source})`);
|
|
360
|
+
return `Forbidden: ${reason}`;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
return undefined;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Loads the AIAgent record by ID for the agent-fallback path. Returns
|
|
367
|
+
* null if no agentID was supplied, or if the lookup fails (which we
|
|
368
|
+
* treat as "no agent context" rather than as an error so a malformed
|
|
369
|
+
* input can't escalate privilege).
|
|
370
|
+
*/
|
|
371
|
+
async loadAgent(agentID, contextUser) {
|
|
372
|
+
if (!agentID)
|
|
373
|
+
return null;
|
|
374
|
+
try {
|
|
375
|
+
const md = new Metadata(); // global-provider-ok: ResolverBase has no bound IMetadataProvider; contextUser is the per-request scope
|
|
376
|
+
const agent = await md.GetEntityObject('MJ: AI Agents', contextUser);
|
|
377
|
+
const loaded = await agent.Load(agentID);
|
|
378
|
+
return loaded ? agent : null;
|
|
379
|
+
}
|
|
380
|
+
catch (err) {
|
|
381
|
+
LogError(`SearchKnowledge: failed to load agent ${agentID}: ${err instanceof Error ? err.message : String(err)}`);
|
|
382
|
+
return null;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Returns the list of search scopes the current user can see and use.
|
|
387
|
+
*
|
|
388
|
+
* Phase 2A: filters the active scope list through
|
|
389
|
+
* SearchScopePermissionResolver — only scopes that resolve to Allowed
|
|
390
|
+
* (Read or higher) for the caller appear in the response. Personal
|
|
391
|
+
* scopes owned by the caller bypass the resolver because ownership is
|
|
392
|
+
* itself an implicit Manage grant.
|
|
393
|
+
*/
|
|
394
|
+
async SearchScopes(agentID, { userPayload } = {}) {
|
|
395
|
+
try {
|
|
396
|
+
const currentUser = this.GetUserFromPayload(userPayload);
|
|
397
|
+
if (!currentUser)
|
|
398
|
+
return [];
|
|
399
|
+
await SearchEngineBase.Instance.Config(false, currentUser);
|
|
400
|
+
const scopes = SearchEngineBase.Instance.ActiveScopes;
|
|
401
|
+
const userID = currentUser.ID;
|
|
402
|
+
const ownedOrUnowned = scopes.filter(s => !s.OwnerUserID || UUIDsEqual(s.OwnerUserID, userID));
|
|
403
|
+
const agent = await this.loadAgent(agentID, currentUser);
|
|
404
|
+
const resolver = new SearchScopePermissionResolver();
|
|
405
|
+
const visible = [];
|
|
406
|
+
for (const s of ownedOrUnowned) {
|
|
407
|
+
// Personal scopes owned by the caller are implicitly visible.
|
|
408
|
+
if (s.OwnerUserID && UUIDsEqual(s.OwnerUserID, userID)) {
|
|
409
|
+
visible.push(this.toScopeInfo(s));
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
412
|
+
// Otherwise, defer to the permission resolver. A scope with
|
|
413
|
+
// no permission rows AND no agent fallback is invisible to
|
|
414
|
+
// non-owners — this is the intended Phase 2A default.
|
|
415
|
+
const verdict = await resolver.ResolveEffectivePermission({
|
|
416
|
+
User: currentUser,
|
|
417
|
+
SearchScopeID: s.ID,
|
|
418
|
+
Agent: agent,
|
|
419
|
+
ContextUser: currentUser,
|
|
420
|
+
});
|
|
421
|
+
if (verdict.Allowed) {
|
|
422
|
+
visible.push(this.toScopeInfo(s));
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return visible;
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
429
|
+
LogError(`SearchScopes query failed: ${msg}`);
|
|
430
|
+
return [];
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
toScopeInfo(s) {
|
|
434
|
+
return {
|
|
435
|
+
ID: s.ID,
|
|
436
|
+
Name: s.Name,
|
|
437
|
+
Description: s.Description ?? undefined,
|
|
438
|
+
Icon: s.Icon ?? undefined,
|
|
439
|
+
IsGlobal: !!s.IsGlobal,
|
|
440
|
+
IsDefault: !!s.IsDefault,
|
|
441
|
+
IsPersonal: !!s.OwnerUserID,
|
|
442
|
+
};
|
|
443
|
+
}
|
|
245
444
|
async PreviewSearch(query, maxResults, { userPayload } = {}) {
|
|
246
445
|
const startTime = Date.now();
|
|
247
446
|
try {
|
|
@@ -317,11 +516,22 @@ __decorate([
|
|
|
317
516
|
__param(1, Arg('maxResults', () => Float, { nullable: true })),
|
|
318
517
|
__param(2, Arg('filters', () => SearchFiltersInput, { nullable: true })),
|
|
319
518
|
__param(3, Arg('minScore', () => Float, { nullable: true })),
|
|
320
|
-
__param(4,
|
|
519
|
+
__param(4, Arg('scopeIDs', () => [ID], { nullable: true })),
|
|
520
|
+
__param(5, Arg('searchContext', () => SearchContextInput, { nullable: true })),
|
|
521
|
+
__param(6, Arg('agentID', () => ID, { nullable: true })),
|
|
522
|
+
__param(7, Ctx()),
|
|
321
523
|
__metadata("design:type", Function),
|
|
322
|
-
__metadata("design:paramtypes", [String, Number, SearchFiltersInput, Number, Object]),
|
|
524
|
+
__metadata("design:paramtypes", [String, Number, SearchFiltersInput, Number, Array, SearchContextInput, String, Object]),
|
|
323
525
|
__metadata("design:returntype", Promise)
|
|
324
526
|
], SearchKnowledgeResolver.prototype, "SearchKnowledge", null);
|
|
527
|
+
__decorate([
|
|
528
|
+
Query(() => [SearchScopeInfo]),
|
|
529
|
+
__param(0, Arg('agentID', () => ID, { nullable: true })),
|
|
530
|
+
__param(1, Ctx()),
|
|
531
|
+
__metadata("design:type", Function),
|
|
532
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
533
|
+
__metadata("design:returntype", Promise)
|
|
534
|
+
], SearchKnowledgeResolver.prototype, "SearchScopes", null);
|
|
325
535
|
__decorate([
|
|
326
536
|
Mutation(() => SearchKnowledgeResult),
|
|
327
537
|
__param(0, Arg('query')),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchKnowledgeResolver.js","sourceRoot":"","sources":["../../src/resolvers/SearchKnowledgeResolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchKnowledgeResolver.js","sourceRoot":"","sources":["../../src/resolvers/SearchKnowledgeResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming variant of the SearchKnowledge mutation. Uses GraphQL
|
|
3
|
+
* subscriptions over the existing Apollo subscription transport (see
|
|
4
|
+
* `plans/search-scopes-rag-plus/streaming-mechanism-decision.md` for the
|
|
5
|
+
* decision rationale).
|
|
6
|
+
*
|
|
7
|
+
* Two-step protocol:
|
|
8
|
+
*
|
|
9
|
+
* 1. Caller invokes the `StreamScopedSearch` mutation with the same
|
|
10
|
+
* arguments as `SearchKnowledge`. The mutation returns a streamID
|
|
11
|
+
* (uuid) immediately and starts the search in the background.
|
|
12
|
+
* 2. Caller subscribes to `SearchStreamEvents(streamID: $id)`. The
|
|
13
|
+
* server publishes events from `SearchEngine.streamSearch()` to the
|
|
14
|
+
* pubsub topic; the subscription's filter narrows to the requested
|
|
15
|
+
* streamID. The final event has `Phase = 'final'` (or 'error');
|
|
16
|
+
* consumers should unsubscribe after receiving it.
|
|
17
|
+
*
|
|
18
|
+
* Permission enforcement is identical to SearchKnowledge: each requested
|
|
19
|
+
* scopeID is run through SearchScopePermissionResolver before the engine
|
|
20
|
+
* is invoked. A denial publishes a single 'error' event and ends.
|
|
21
|
+
*/
|
|
22
|
+
import { PubSubEngine } from 'type-graphql';
|
|
23
|
+
import { AppContext } from '../types.js';
|
|
24
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
25
|
+
import { SearchKnowledgeResultItem, SearchSourceCounts } from './SearchKnowledgeResolver.js';
|
|
26
|
+
/**
|
|
27
|
+
* Wire format for search stream events. We do not use a discriminated
|
|
28
|
+
* union at the GraphQL level (type-graphql doesn't have first-class
|
|
29
|
+
* support for union outputs in a clean way) — instead we use a Phase
|
|
30
|
+
* discriminator and make the data fields nullable per phase.
|
|
31
|
+
*/
|
|
32
|
+
export declare class SearchStreamNotification {
|
|
33
|
+
StreamID: string;
|
|
34
|
+
Phase: string;
|
|
35
|
+
/** Set on `provider` events. */
|
|
36
|
+
ProviderName?: string;
|
|
37
|
+
/** Set on `provider` events. */
|
|
38
|
+
DurationMs?: number;
|
|
39
|
+
/** Set on `provider`, `fused`, `reranked`, `final` events. */
|
|
40
|
+
Results?: SearchKnowledgeResultItem[];
|
|
41
|
+
/** Set on `final` events. */
|
|
42
|
+
SourceCounts?: SearchSourceCounts;
|
|
43
|
+
/** Set on `final` events. */
|
|
44
|
+
ElapsedMs?: number;
|
|
45
|
+
/** Set on `error` events. */
|
|
46
|
+
ErrorMessage?: string;
|
|
47
|
+
}
|
|
48
|
+
export declare class SearchStreamStartResult {
|
|
49
|
+
Success: boolean;
|
|
50
|
+
StreamID: string;
|
|
51
|
+
ErrorMessage?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare class SearchKnowledgeStreamResolver extends ResolverBase {
|
|
54
|
+
/**
|
|
55
|
+
* Subscribe to events from a running streamScopedSearch. Filter by
|
|
56
|
+
* streamID so multiple in-flight streams don't interleave on the same
|
|
57
|
+
* client.
|
|
58
|
+
*/
|
|
59
|
+
SearchStreamEvents(notification: SearchStreamNotification, _streamID: string): SearchStreamNotification;
|
|
60
|
+
/**
|
|
61
|
+
* Start a streaming search. Returns a streamID that the caller passes
|
|
62
|
+
* to the SearchStreamEvents subscription. Permission checks are
|
|
63
|
+
* performed before the stream begins; on rejection a single 'error'
|
|
64
|
+
* event is published and the stream ends.
|
|
65
|
+
*/
|
|
66
|
+
StreamScopedSearch(query: string, maxResults: number | undefined, minScore: number | undefined, scopeIDs: string[] | undefined, searchContext: unknown, agentID: string | undefined, pubSub: PubSubEngine, { userPayload }?: AppContext): Promise<SearchStreamStartResult>;
|
|
67
|
+
/**
|
|
68
|
+
* Runs the stream and publishes events. Always publishes a terminal
|
|
69
|
+
* 'final' or 'error' so clients can confidently unsubscribe.
|
|
70
|
+
*/
|
|
71
|
+
private runStream;
|
|
72
|
+
private toNotification;
|
|
73
|
+
/** Mirrors the helper in SearchKnowledgeResolver — kept private to
|
|
74
|
+
* avoid an inter-resolver coupling. If a third resolver ever needs
|
|
75
|
+
* this, lift it into a shared util in `packages/SearchEngine`. */
|
|
76
|
+
private rejectForbiddenScopes;
|
|
77
|
+
private loadAgent;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=SearchKnowledgeStreamResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchKnowledgeStreamResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/SearchKnowledgeStreamResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAA0F,YAAY,EAAE,MAAM,cAAc,CAAC;AAGpI,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS1D,OAAO,EAAE,yBAAyB,EAAwB,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAInH;;;;;GAKG;AACH,qBACa,wBAAwB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAEhC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gCAAgC;IAEhC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8DAA8D;IAE9D,OAAO,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAEtC,6BAA6B;IAE7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC,6BAA6B;IAE7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,uBAAuB;IAEhC,OAAO,EAAE,OAAO,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,6BAA8B,SAAQ,YAAY;IAC3D;;;;OAIG;IAMH,kBAAkB,CACN,YAAY,EAAE,wBAAwB,EACnB,SAAS,EAAE,MAAM,GAC7C,wBAAwB;IAI3B;;;;;OAKG;IAEG,kBAAkB,CACN,KAAK,EAAE,MAAM,EACyB,UAAU,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAClB,aAAa,EAAE,OAAO,EACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC/D,MAAM,EAAE,YAAY,EACvB,EAAE,WAAW,EAAE,GAAE,UAA6B,GACtD,OAAO,CAAC,uBAAuB,CAAC;IA6DnC;;;OAGG;YACW,SAAS;IAwCvB,OAAO,CAAC,cAAc;IA8DtB;;sEAEkE;YACpD,qBAAqB;YA8BrB,SAAS;CAY1B"}
|