@memberjunction/core-entities-server 6.2.0-edge.1 → 6.2.0-edge.3
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 +7 -3
- package/dist/custom/FormComponentGuard.d.ts +48 -0
- package/dist/custom/FormComponentGuard.d.ts.map +1 -0
- package/dist/custom/FormComponentGuard.js +236 -0
- package/dist/custom/FormComponentGuard.js.map +1 -0
- package/dist/custom/FormScopeGuard.d.ts +52 -0
- package/dist/custom/FormScopeGuard.d.ts.map +1 -0
- package/dist/custom/FormScopeGuard.js +111 -0
- package/dist/custom/FormScopeGuard.js.map +1 -0
- package/dist/custom/MJAIAgentExampleEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentExampleEntityServer.server.js +3 -2
- package/dist/custom/MJAIAgentExampleEntityServer.server.js.map +1 -1
- package/dist/custom/MJAIAgentNoteEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentNoteEntityServer.server.js +3 -2
- package/dist/custom/MJAIAgentNoteEntityServer.server.js.map +1 -1
- package/dist/custom/MJActionEntityServer.server.js +1 -1
- package/dist/custom/MJActionEntityServer.server.js.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.d.ts +30 -2
- package/dist/custom/MJComponentEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.js +64 -5
- package/dist/custom/MJComponentEntityServer.server.js.map +1 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.d.ts +2 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.js +2 -2
- package/dist/custom/MJDuplicateRunEntityServer.server.js.map +1 -1
- package/dist/custom/MJEntityFormContributionEntityServer.server.d.ts +37 -0
- package/dist/custom/MJEntityFormContributionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJEntityFormContributionEntityServer.server.js +89 -0
- package/dist/custom/MJEntityFormContributionEntityServer.server.js.map +1 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.d.ts +37 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.js +89 -0
- package/dist/custom/MJEntityFormOverrideEntityServer.server.js.map +1 -0
- package/dist/custom/MJInteractionEventEntityServer.server.d.ts +23 -0
- package/dist/custom/MJInteractionEventEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJInteractionEventEntityServer.server.js +70 -0
- package/dist/custom/MJInteractionEventEntityServer.server.js.map +1 -0
- package/dist/custom/MJQueryEntityServer.server.d.ts +9 -1
- package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJQueryEntityServer.server.js +28 -8
- package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
- package/dist/custom/MJRecordChangeEntityServer.server.d.ts +11 -0
- package/dist/custom/MJRecordChangeEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRecordChangeEntityServer.server.js +103 -0
- package/dist/custom/MJRecordChangeEntityServer.server.js.map +1 -0
- package/dist/custom/MJRecordProcessEntityServer.server.d.ts +6 -2
- package/dist/custom/MJRecordProcessEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJRecordProcessEntityServer.server.js +6 -2
- package/dist/custom/MJRecordProcessEntityServer.server.js.map +1 -1
- package/dist/custom/MJRemoteOperationEntityServer.server.js +1 -1
- package/dist/custom/MJRemoteOperationEntityServer.server.js.map +1 -1
- package/dist/custom/MJRubricBandEntityServer.server.d.ts +9 -0
- package/dist/custom/MJRubricBandEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricBandEntityServer.server.js +34 -0
- package/dist/custom/MJRubricBandEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.d.ts +16 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.js +43 -0
- package/dist/custom/MJRubricCriterionEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.d.ts +10 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.js +43 -0
- package/dist/custom/MJRubricCriterionLevelEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.d.ts +43 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.js +243 -0
- package/dist/custom/MJRubricEvaluationEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.d.ts +26 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.js +49 -0
- package/dist/custom/MJRubricEvaluationScoreEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricScaleEntityServer.server.d.ts +24 -0
- package/dist/custom/MJRubricScaleEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricScaleEntityServer.server.js +88 -0
- package/dist/custom/MJRubricScaleEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.d.ts +16 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.js +80 -0
- package/dist/custom/MJRubricScaleLevelEntityServer.server.js.map +1 -0
- package/dist/custom/MJRubricVersionEntityServer.server.d.ts +46 -0
- package/dist/custom/MJRubricVersionEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJRubricVersionEntityServer.server.js +131 -0
- package/dist/custom/MJRubricVersionEntityServer.server.js.map +1 -0
- package/dist/custom/MJTagEntityServer.server.d.ts +1 -1
- package/dist/custom/MJTagEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJTagEntityServer.server.js +7 -3
- package/dist/custom/MJTagEntityServer.server.js.map +1 -1
- package/dist/custom/MJVectorIndexEntityServer.server.d.ts +2 -1
- package/dist/custom/MJVectorIndexEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJVectorIndexEntityServer.server.js +6 -4
- package/dist/custom/MJVectorIndexEntityServer.server.js.map +1 -1
- package/dist/custom/query-extraction/pipeline.js +1 -1
- package/dist/custom/query-extraction/pipeline.js.map +1 -1
- package/dist/custom/query-extraction/resolve.d.ts +5 -2
- package/dist/custom/query-extraction/resolve.d.ts.map +1 -1
- package/dist/custom/query-extraction/resolve.js +6 -3
- package/dist/custom/query-extraction/resolve.js.map +1 -1
- package/dist/custom/query-extraction/sync.d.ts.map +1 -1
- package/dist/custom/query-extraction/sync.js +4 -2
- package/dist/custom/query-extraction/sync.js.map +1 -1
- package/dist/custom/rubrics/evaluationSubmit.d.ts +95 -0
- package/dist/custom/rubrics/evaluationSubmit.d.ts.map +1 -0
- package/dist/custom/rubrics/evaluationSubmit.js +142 -0
- package/dist/custom/rubrics/evaluationSubmit.js.map +1 -0
- package/dist/custom/rubrics/scaleFreeze.d.ts +21 -0
- package/dist/custom/rubrics/scaleFreeze.d.ts.map +1 -0
- package/dist/custom/rubrics/scaleFreeze.js +30 -0
- package/dist/custom/rubrics/scaleFreeze.js.map +1 -0
- package/dist/custom/rubrics/statusRules.d.ts +13 -0
- package/dist/custom/rubrics/statusRules.d.ts.map +1 -0
- package/dist/custom/rubrics/statusRules.js +57 -0
- package/dist/custom/rubrics/statusRules.js.map +1 -0
- package/dist/custom/rubrics/versionPublish.d.ts +67 -0
- package/dist/custom/rubrics/versionPublish.d.ts.map +1 -0
- package/dist/custom/rubrics/versionPublish.js +222 -0
- package/dist/custom/rubrics/versionPublish.js.map +1 -0
- package/dist/engines/IdentityClaimEngineServer.d.ts +9 -0
- package/dist/engines/IdentityClaimEngineServer.d.ts.map +1 -1
- package/dist/engines/IdentityClaimEngineServer.js +38 -8
- package/dist/engines/IdentityClaimEngineServer.js.map +1 -1
- package/dist/engines/QueryEngineServer.d.ts.map +1 -1
- package/dist/engines/QueryEngineServer.js +15 -16
- package/dist/engines/QueryEngineServer.js.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -28
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type RubricNodeSnapshot, type RubricVersionSnapshot, type VersionBump } from '@memberjunction/rubrics-base';
|
|
2
|
+
export declare class RubricPublishError extends Error {
|
|
3
|
+
readonly details: string[];
|
|
4
|
+
constructor(details: string[]);
|
|
5
|
+
}
|
|
6
|
+
export interface PublishWarning {
|
|
7
|
+
severity: 'warning';
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PublishResult {
|
|
11
|
+
appliedBump: VersionBump;
|
|
12
|
+
computedBump: 'Major' | 'Minor' | 'Patch' | 'Initial';
|
|
13
|
+
majorVersion: number;
|
|
14
|
+
minorVersion: number;
|
|
15
|
+
patchVersion: number;
|
|
16
|
+
changeDetails: {
|
|
17
|
+
BaseVersionID: string | null;
|
|
18
|
+
Changes: {
|
|
19
|
+
Path: string;
|
|
20
|
+
Property: string;
|
|
21
|
+
From: unknown;
|
|
22
|
+
To: unknown;
|
|
23
|
+
Bump: string;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
26
|
+
contentHash: string;
|
|
27
|
+
scoringHash: string;
|
|
28
|
+
warnings: PublishWarning[];
|
|
29
|
+
publishedAt: Date;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Refuses a draft that cannot be published: duplicate keys, a missing or cyclic parent,
|
|
33
|
+
* a criterion with no scale, a gate with no minimum, a criterion that has children,
|
|
34
|
+
* an empty group, a non-advisory leaf under an advisory group, bands that overlap or
|
|
35
|
+
* leave a gap in 0..1, or a version with no non-advisory leaf. Warns when a group's
|
|
36
|
+
* non-advisory children are all weight 0, and when a gate's effective not-applicable
|
|
37
|
+
* policy is ExcludeAndRedistribute.
|
|
38
|
+
*/
|
|
39
|
+
export declare function ValidateRubricTree(version: RubricVersionSnapshot): {
|
|
40
|
+
errors: string[];
|
|
41
|
+
warnings: PublishWarning[];
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Publishes a draft. Refuses an identical draft and a tree that fails
|
|
45
|
+
* {@link ValidateRubricTree}. Writes the bump from {@link RubricVersionDiff},
|
|
46
|
+
* and ContentHash and ScoringHash from its canonical projections. Does not
|
|
47
|
+
* touch the database.
|
|
48
|
+
*/
|
|
49
|
+
export declare function PublishRubricVersion(base: RubricVersionSnapshot | null, draft: RubricVersionSnapshot, requestedBump?: 'Major' | 'Minor' | 'Patch' | null): Promise<PublishResult>;
|
|
50
|
+
/** A new draft: new ids, status left to the caller, keys and parent structure preserved. */
|
|
51
|
+
export declare function CloneVersionNodes(nodes: RubricNodeSnapshot[]): RubricNodeSnapshot[];
|
|
52
|
+
type RowRun = (entityName: string, filter: string) => Promise<{
|
|
53
|
+
Success: boolean;
|
|
54
|
+
Results?: unknown[];
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Loads the draft tree and the base version so Save can publish without a separate call.
|
|
58
|
+
* A null base id does not mean "first version" when this rubric already has a
|
|
59
|
+
* Published or Retired version. The base is then the highest of those, so the
|
|
60
|
+
* publish is numbered from that version instead of 1.0.0.
|
|
61
|
+
*/
|
|
62
|
+
export declare function LoadDraftForPublish(run: RowRun, versionId: string, rubricId: string, basedOnVersionId: string | null): Promise<{
|
|
63
|
+
base: RubricVersionSnapshot | null;
|
|
64
|
+
draft: RubricVersionSnapshot;
|
|
65
|
+
}>;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=versionPublish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionPublish.d.ts","sourceRoot":"","sources":["../../../src/custom/rubrics/versionPublish.ts"],"names":[],"mappings":"AACA,OAAO,EAA0E,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE7L,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE;CAKvC;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE;QACX,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAC;YAAC,EAAE,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC3F,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAqDnH;AAoBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,qBAAqB,GAAG,IAAI,EAClC,KAAK,EAAE,qBAAqB,EAC5B,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GACnD,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAOnF;AAED,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAAC;AAQzG;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC,CAK1M"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { NormalizeUUID, UUIDsEqual } from '@memberjunction/global';
|
|
2
|
+
import { HighestNonDraftVersion, RubricVersionDiff, SnapshotFromRows, Sha256Hex } from '@memberjunction/rubrics-base';
|
|
3
|
+
export class RubricPublishError extends Error {
|
|
4
|
+
constructor(details) {
|
|
5
|
+
super(details.join(' '));
|
|
6
|
+
this.name = 'RubricPublishError';
|
|
7
|
+
this.details = details;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Refuses a draft that cannot be published: duplicate keys, a missing or cyclic parent,
|
|
12
|
+
* a criterion with no scale, a gate with no minimum, a criterion that has children,
|
|
13
|
+
* an empty group, a non-advisory leaf under an advisory group, bands that overlap or
|
|
14
|
+
* leave a gap in 0..1, or a version with no non-advisory leaf. Warns when a group's
|
|
15
|
+
* non-advisory children are all weight 0, and when a gate's effective not-applicable
|
|
16
|
+
* policy is ExcludeAndRedistribute.
|
|
17
|
+
*/
|
|
18
|
+
export function ValidateRubricTree(version) {
|
|
19
|
+
const errors = [];
|
|
20
|
+
const warnings = [];
|
|
21
|
+
const byId = new Map(version.nodes.map(node => [NormalizeUUID(node.id), node]));
|
|
22
|
+
const keys = new Set();
|
|
23
|
+
const childrenOf = (id) => version.nodes.filter(item => UUIDsEqual(item.parentId, id));
|
|
24
|
+
for (const node of version.nodes) {
|
|
25
|
+
if (keys.has(node.key))
|
|
26
|
+
errors.push(`Duplicate key ${node.key}.`);
|
|
27
|
+
keys.add(node.key);
|
|
28
|
+
if (node.parentId && !byId.has(NormalizeUUID(node.parentId)))
|
|
29
|
+
errors.push(`${node.key} points at a missing parent.`);
|
|
30
|
+
if (node.nodeType === 'Criterion' && !node.scaleId)
|
|
31
|
+
errors.push(`${node.key} is a criterion with no scale.`);
|
|
32
|
+
if (node.nodeType === 'Criterion' && childrenOf(node.id).length > 0) {
|
|
33
|
+
errors.push(`${node.key} is a criterion with children, so a child gate is ignored.`);
|
|
34
|
+
}
|
|
35
|
+
if (node.nodeType === 'Group' && childrenOf(node.id).length === 0) {
|
|
36
|
+
errors.push(`${node.key} is an empty group.`);
|
|
37
|
+
}
|
|
38
|
+
if (node.scaleId && !version.scales.some(scale => UUIDsEqual(scale.id, node.scaleId))) {
|
|
39
|
+
errors.push(`${node.key} names a scale that is not on this version.`);
|
|
40
|
+
}
|
|
41
|
+
if (node.isGate && (node.gateMinimumScore === undefined || node.gateMinimumScore === null)) {
|
|
42
|
+
errors.push(`${node.key} is a gate with no minimum score.`);
|
|
43
|
+
}
|
|
44
|
+
const policy = node.notApplicablePolicy ?? version.notApplicablePolicy;
|
|
45
|
+
if (node.isGate && !node.isAdvisory && policy === 'ExcludeAndRedistribute') {
|
|
46
|
+
warnings.push({ severity: 'warning', message: `Gate ${node.key} excludes not-applicable answers, so silence and not-applicable are easy to confuse.` });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (hasCycle(version.nodes))
|
|
50
|
+
errors.push('The criteria tree has a cycle.');
|
|
51
|
+
for (const leaf of version.nodes.filter(node => node.nodeType === 'Criterion' && !node.isAdvisory)) {
|
|
52
|
+
const seen = new Set();
|
|
53
|
+
let parentId = leaf.parentId;
|
|
54
|
+
while (parentId && byId.has(parentId) && !seen.has(parentId)) {
|
|
55
|
+
seen.add(parentId);
|
|
56
|
+
const parent = byId.get(parentId);
|
|
57
|
+
if (parent.isAdvisory) {
|
|
58
|
+
errors.push(`${leaf.key} is a non-advisory leaf under the advisory group ${parent.key}.`);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
parentId = parent.parentId;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!version.nodes.some(node => node.nodeType === 'Criterion' && !node.isAdvisory)) {
|
|
65
|
+
errors.push('A version needs a non-advisory leaf.');
|
|
66
|
+
}
|
|
67
|
+
for (const node of version.nodes.filter(item => item.nodeType === 'Group')) {
|
|
68
|
+
const children = childrenOf(node.id).filter(child => !child.isAdvisory);
|
|
69
|
+
if (children.length > 0 && children.every(child => child.weight === 0)) {
|
|
70
|
+
warnings.push({ severity: 'warning', message: `Group ${node.key} has only zero-weight children, so they share the score equally.` });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
errors.push(...bandCoverageErrors(version.bands));
|
|
74
|
+
return { errors, warnings };
|
|
75
|
+
}
|
|
76
|
+
/** Bands are optional. When present they tile 0..1: each meets the previous, and the ends are 0 and 1. */
|
|
77
|
+
function bandCoverageErrors(bands) {
|
|
78
|
+
if (bands.length === 0)
|
|
79
|
+
return [];
|
|
80
|
+
const ordered = [...bands].sort((left, right) => left.minScore - right.minScore || left.maxScore - right.maxScore);
|
|
81
|
+
const errors = [];
|
|
82
|
+
const near = (left, right) => Math.abs(left - right) <= 1e-6;
|
|
83
|
+
if (ordered[0].minScore > 1e-6)
|
|
84
|
+
errors.push(`Bands leave a gap before ${ordered[0].label}.`);
|
|
85
|
+
for (let index = 1; index < ordered.length; index++) {
|
|
86
|
+
const previous = ordered[index - 1];
|
|
87
|
+
const next = ordered[index];
|
|
88
|
+
if (next.minScore < previous.maxScore - 1e-6)
|
|
89
|
+
errors.push(`Bands ${previous.label} and ${next.label} overlap.`);
|
|
90
|
+
else if (!near(next.minScore, previous.maxScore))
|
|
91
|
+
errors.push(`Bands ${previous.label} and ${next.label} leave a gap.`);
|
|
92
|
+
}
|
|
93
|
+
const last = ordered[ordered.length - 1];
|
|
94
|
+
if (last.maxScore < 1 - 1e-6)
|
|
95
|
+
errors.push(`Bands leave a gap after ${last.label}.`);
|
|
96
|
+
return errors;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Publishes a draft. Refuses an identical draft and a tree that fails
|
|
100
|
+
* {@link ValidateRubricTree}. Writes the bump from {@link RubricVersionDiff},
|
|
101
|
+
* and ContentHash and ScoringHash from its canonical projections. Does not
|
|
102
|
+
* touch the database.
|
|
103
|
+
*/
|
|
104
|
+
export async function PublishRubricVersion(base, draft, requestedBump) {
|
|
105
|
+
const validation = ValidateRubricTree(draft);
|
|
106
|
+
if (validation.errors.length > 0)
|
|
107
|
+
throw new RubricPublishError(validation.errors);
|
|
108
|
+
const diff = RubricVersionDiff.Diff(base, draft, requestedBump);
|
|
109
|
+
if (!diff.appliedBump || !diff.nextVersion) {
|
|
110
|
+
throw new RubricPublishError(['This draft is identical to its base and cannot be published.']);
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
appliedBump: diff.appliedBump,
|
|
114
|
+
computedBump: diff.appliedBump === 'Initial' ? 'Initial' : (diff.computedBump ?? diff.appliedBump),
|
|
115
|
+
majorVersion: diff.nextVersion.major,
|
|
116
|
+
minorVersion: diff.nextVersion.minor,
|
|
117
|
+
patchVersion: diff.nextVersion.patch,
|
|
118
|
+
changeDetails: {
|
|
119
|
+
BaseVersionID: base?.id ?? null,
|
|
120
|
+
Changes: diff.changes.map(change => ({
|
|
121
|
+
Path: change.subject,
|
|
122
|
+
Property: change.property,
|
|
123
|
+
From: change.from ?? null,
|
|
124
|
+
To: change.to ?? null,
|
|
125
|
+
Bump: change.bump,
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
contentHash: await Sha256Hex(RubricVersionDiff.ContentCanonical(draft)),
|
|
129
|
+
scoringHash: await Sha256Hex(RubricVersionDiff.ScoringCanonical(draft)),
|
|
130
|
+
warnings: validation.warnings,
|
|
131
|
+
publishedAt: new Date(),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/** A new draft: new ids, status left to the caller, keys and parent structure preserved. */
|
|
135
|
+
export function CloneVersionNodes(nodes) {
|
|
136
|
+
const ids = new Map(nodes.map(node => [node.id, crypto.randomUUID()]));
|
|
137
|
+
return nodes.map(node => ({
|
|
138
|
+
...node,
|
|
139
|
+
id: ids.get(node.id),
|
|
140
|
+
parentId: node.parentId ? ids.get(node.parentId) ?? null : null,
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
function read(row, name) {
|
|
144
|
+
const record = row;
|
|
145
|
+
if (record && typeof record.Get === 'function' && record[name] === undefined)
|
|
146
|
+
return record.Get(name);
|
|
147
|
+
return record?.[name];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Loads the draft tree and the base version so Save can publish without a separate call.
|
|
151
|
+
* A null base id does not mean "first version" when this rubric already has a
|
|
152
|
+
* Published or Retired version. The base is then the highest of those, so the
|
|
153
|
+
* publish is numbered from that version instead of 1.0.0.
|
|
154
|
+
*/
|
|
155
|
+
export async function LoadDraftForPublish(run, versionId, rubricId, basedOnVersionId) {
|
|
156
|
+
const draft = await loadSnapshot(run, versionId, rubricId);
|
|
157
|
+
const baseId = basedOnVersionId ?? await highestNonDraftId(run, rubricId, versionId);
|
|
158
|
+
const base = baseId ? await loadSnapshot(run, baseId, rubricId) : null;
|
|
159
|
+
return { base, draft };
|
|
160
|
+
}
|
|
161
|
+
async function highestNonDraftId(run, rubricId, exceptVersionId) {
|
|
162
|
+
const siblings = await rows(run, 'MJ: Rubric Versions', `RubricID='${rubricId}' AND Status <> 'Draft'`);
|
|
163
|
+
const best = HighestNonDraftVersion(siblings.map(row => ({
|
|
164
|
+
id: String(read(row, 'ID') ?? ''),
|
|
165
|
+
status: String(read(row, 'Status') ?? ''),
|
|
166
|
+
major: Number(read(row, 'MajorVersion') ?? 0),
|
|
167
|
+
minor: Number(read(row, 'MinorVersion') ?? 0),
|
|
168
|
+
patch: Number(read(row, 'PatchVersion') ?? 0),
|
|
169
|
+
})).filter(version => version.id !== exceptVersionId));
|
|
170
|
+
return best?.id ?? null;
|
|
171
|
+
}
|
|
172
|
+
async function loadSnapshot(run, versionId, rubricId) {
|
|
173
|
+
const versions = await rows(run, 'MJ: Rubric Versions', `ID='${versionId}'`);
|
|
174
|
+
const version = versions[0];
|
|
175
|
+
if (!version)
|
|
176
|
+
throw new RubricPublishError([`Version ${versionId} was not found.`]);
|
|
177
|
+
const criteria = await rows(run, 'MJ: Rubric Criteria', `RubricVersionID='${versionId}'`);
|
|
178
|
+
const criterionIds = criteria.map(row => String(read(row, 'ID'))).filter(id => id.length > 0);
|
|
179
|
+
const anchorRows = criterionIds.length === 0
|
|
180
|
+
? []
|
|
181
|
+
: await rows(run, 'MJ: Rubric Criterion Levels', `CriterionID IN (${criterionIds.map(id => `'${id}'`).join(',')})`);
|
|
182
|
+
const bands = await rows(run, 'MJ: Rubric Bands', `RubricVersionID='${versionId}'`);
|
|
183
|
+
const scaleIds = [...new Set(criteria.map(row => read(row, 'ScaleID')).filter((id) => typeof id === 'string'))];
|
|
184
|
+
const scales = [];
|
|
185
|
+
const levels = [];
|
|
186
|
+
for (const scaleId of scaleIds) {
|
|
187
|
+
const scaleRows = await rows(run, 'MJ: Rubric Scales', `ID='${scaleId}'`);
|
|
188
|
+
const levelRows = await rows(run, 'MJ: Rubric Scale Levels', `ScaleID='${scaleId}'`);
|
|
189
|
+
const scale = scaleRows[0];
|
|
190
|
+
if (!scale)
|
|
191
|
+
continue;
|
|
192
|
+
scales.push(scale);
|
|
193
|
+
levels.push(...levelRows);
|
|
194
|
+
}
|
|
195
|
+
return SnapshotFromRows({ version, rubricId, criteria, anchors: anchorRows, bands, scales, levels });
|
|
196
|
+
}
|
|
197
|
+
async function rows(run, entityName, filter) {
|
|
198
|
+
const result = await run(entityName, filter);
|
|
199
|
+
if (!result.Success)
|
|
200
|
+
throw new RubricPublishError([`Could not load ${entityName}.`]);
|
|
201
|
+
return result.Results ?? [];
|
|
202
|
+
}
|
|
203
|
+
function hasCycle(nodes) {
|
|
204
|
+
const byId = new Map(nodes.map(node => [NormalizeUUID(node.id), node]));
|
|
205
|
+
const state = new Map();
|
|
206
|
+
const visit = (id) => {
|
|
207
|
+
const key = NormalizeUUID(id);
|
|
208
|
+
const mark = state.get(key);
|
|
209
|
+
if (mark === 'visiting')
|
|
210
|
+
return true;
|
|
211
|
+
if (mark === 'done')
|
|
212
|
+
return false;
|
|
213
|
+
state.set(key, 'visiting');
|
|
214
|
+
const parentId = byId.get(key)?.parentId;
|
|
215
|
+
if (parentId && byId.has(NormalizeUUID(parentId)) && visit(parentId))
|
|
216
|
+
return true;
|
|
217
|
+
state.set(key, 'done');
|
|
218
|
+
return false;
|
|
219
|
+
};
|
|
220
|
+
return nodes.some(node => visit(node.id));
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=versionPublish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionPublish.js","sourceRoot":"","sources":["../../../src/custom/rubrics/versionPublish.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,15 @@ export declare class IdentityClaimEngineServer extends BaseSingleton<IdentityCla
|
|
|
105
105
|
* framework if configured, and executes the driver's OnCreate lifecycle method.
|
|
106
106
|
*/
|
|
107
107
|
CreateClaim(params: CreateClaimServerParams, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<MJIdentityClaimEntity>;
|
|
108
|
+
/**
|
|
109
|
+
* When a new claim expires: an explicit `ExpiresAt` wins, otherwise whole days from
|
|
110
|
+
* `ExpiresInDays`, the type's `DefaultExpirationDays`, or 30.
|
|
111
|
+
*
|
|
112
|
+
* @throws When `ExpiresAt` is not a valid instant in the future — a claim born expired would
|
|
113
|
+
* be refused on redemption with no hint that the caller's clock or arithmetic was
|
|
114
|
+
* the cause.
|
|
115
|
+
*/
|
|
116
|
+
private resolveClaimExpiry;
|
|
108
117
|
/**
|
|
109
118
|
* Sends a claimant email notification using CommunicationEngine and TemplateEngineServer
|
|
110
119
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityClaimEngineServer.d.ts","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngineServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,aAAa,EAAyC,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAA4D,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EAGvB,WAAW,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EAE5B,MAAM,+BAA+B,CAAC;AAMvC,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAC9D,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,yBAA0B,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IACnF,SAAS;IAIT,WAAkB,QAAQ,IAAI,yBAAyB,CAEtD;IAMD;;OAEG;IACH,SAAS,KAAK,IAAI,IAAI,mBAAmB,CAExC;IAED,OAAO,CAAC,SAAS,CAAkC;IAEnD;;;;;;;;;;;;OAYG;IACH,IAAW,QAAQ,IAAI,iBAAiB,CAEvC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAE3C;IAED;;OAEG;IACU,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhH,sCAAsC;IACtC,IAAW,UAAU,IAAI,yBAAyB,EAAE,CAEnD;IAED,oDAAoD;IAC7C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI9E,+BAA+B;IACxB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI1E,oFAAoF;IAC7E,iBAAiB,CAAC,SAAS,EAAE,yBAAyB,GAAG,uBAAuB,GAAG,IAAI;IAI9F,oDAAoD;IAC7C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C,gFAAgF;IACzE,yBAAyB,CAAC,SAAS,EAAE,yBAAyB,GAAG,SAAS,GAAG,8BAA8B;IAIlH,OAAO,CAAC,UAAU;IASlB;;;OAGG;IACU,WAAW,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"IdentityClaimEngineServer.d.ts","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngineServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,10 +116,7 @@ export class IdentityClaimEngineServer extends BaseSingleton {
|
|
|
116
116
|
* framework if configured, and executes the driver's OnCreate lifecycle method.
|
|
117
117
|
*/
|
|
118
118
|
async CreateClaim(params, contextUser, provider) {
|
|
119
|
-
const normalizedEmail = this.NormalizeEmail(params.NormalizedEmail);
|
|
120
|
-
if (!normalizedEmail) {
|
|
121
|
-
throw new Error('NormalizedEmail is required to create an IdentityClaim');
|
|
122
|
-
}
|
|
119
|
+
const normalizedEmail = this.NormalizeEmail(params.NormalizedEmail ?? '');
|
|
123
120
|
let claimType;
|
|
124
121
|
if (params.ClaimTypeID) {
|
|
125
122
|
claimType = this.GetClaimTypeByID(params.ClaimTypeID);
|
|
@@ -133,6 +130,20 @@ export class IdentityClaimEngineServer extends BaseSingleton {
|
|
|
133
130
|
if (!claimType.IsActive) {
|
|
134
131
|
throw new Error(`IdentityClaimType '${claimType.Name}' is inactive and cannot issue new claims`);
|
|
135
132
|
}
|
|
133
|
+
// A claim with no recipient is redeemable by TOKEN only, so only a type that refuses
|
|
134
|
+
// email-match redemption may issue one. Checked after the type resolves because the
|
|
135
|
+
// answer depends on the type's Configuration.
|
|
136
|
+
if (!normalizedEmail && this.GetClaimTypeConfiguration(claimType).RequireToken !== true) {
|
|
137
|
+
throw new Error(`NormalizedEmail is required to create an IdentityClaim of type '${claimType.Name}' ` +
|
|
138
|
+
`(only types with RequireToken may issue token-only claims)`);
|
|
139
|
+
}
|
|
140
|
+
// ...and the CALLER must hold the token. With no recipient no email is sent, so a token
|
|
141
|
+
// generated here would be returned to nobody, and the claim could never be redeemed.
|
|
142
|
+
if (!normalizedEmail && !params.VerificationToken && !params.MagicLinkInviteID) {
|
|
143
|
+
throw new Error('A token-only IdentityClaim needs a caller-supplied VerificationToken (or a MagicLinkInviteID): ' +
|
|
144
|
+
'with no recipient email, a generated token would be delivered to no one');
|
|
145
|
+
}
|
|
146
|
+
const expiresAt = this.resolveClaimExpiry(params, claimType);
|
|
136
147
|
const md = provider ?? this.Provider;
|
|
137
148
|
// 2.2 Accept and normalize EntityID or EntityName
|
|
138
149
|
let resolvedEntityID = null;
|
|
@@ -170,9 +181,6 @@ export class IdentityClaimEngineServer extends BaseSingleton {
|
|
|
170
181
|
claim.RecordID = params.RecordID ?? null;
|
|
171
182
|
claim.PayloadJSON = params.Payload ? JSON.stringify(params.Payload) : null;
|
|
172
183
|
claim.Status = 'Pending';
|
|
173
|
-
const days = params.ExpiresInDays ?? claimType.DefaultExpirationDays ?? 30;
|
|
174
|
-
const expiresAt = new Date();
|
|
175
|
-
expiresAt.setDate(expiresAt.getDate() + days);
|
|
176
184
|
claim.ExpiresAt = expiresAt;
|
|
177
185
|
claim.MagicLinkInviteID = params.MagicLinkInviteID ?? null;
|
|
178
186
|
claim.MetadataJSON = Object.keys(metadataObj).length > 0 ? JSON.stringify(metadataObj) : null;
|
|
@@ -181,7 +189,8 @@ export class IdentityClaimEngineServer extends BaseSingleton {
|
|
|
181
189
|
throw new Error(`Failed to save IdentityClaim: ${claim.LatestResult?.Message ?? 'Unknown error'}`);
|
|
182
190
|
}
|
|
183
191
|
// Send email notification via MJ Communications Framework if enabled
|
|
184
|
-
|
|
192
|
+
// A token-only claim has no recipient: the caller holds the token and delivers it.
|
|
193
|
+
if (params.SendEmail !== false && normalizedEmail) {
|
|
185
194
|
try {
|
|
186
195
|
await this.sendClaimEmail(claim, claimType, params, rawToken, contextUser);
|
|
187
196
|
}
|
|
@@ -197,6 +206,27 @@ export class IdentityClaimEngineServer extends BaseSingleton {
|
|
|
197
206
|
}
|
|
198
207
|
return claim;
|
|
199
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* When a new claim expires: an explicit `ExpiresAt` wins, otherwise whole days from
|
|
211
|
+
* `ExpiresInDays`, the type's `DefaultExpirationDays`, or 30.
|
|
212
|
+
*
|
|
213
|
+
* @throws When `ExpiresAt` is not a valid instant in the future — a claim born expired would
|
|
214
|
+
* be refused on redemption with no hint that the caller's clock or arithmetic was
|
|
215
|
+
* the cause.
|
|
216
|
+
*/
|
|
217
|
+
resolveClaimExpiry(params, claimType) {
|
|
218
|
+
if (params.ExpiresAt !== undefined) {
|
|
219
|
+
const at = params.ExpiresAt instanceof Date ? params.ExpiresAt.getTime() : NaN;
|
|
220
|
+
if (!Number.isFinite(at) || at <= Date.now()) {
|
|
221
|
+
throw new Error('ExpiresAt must be a valid instant in the future');
|
|
222
|
+
}
|
|
223
|
+
return new Date(at);
|
|
224
|
+
}
|
|
225
|
+
const days = params.ExpiresInDays ?? claimType.DefaultExpirationDays ?? 30;
|
|
226
|
+
const expiresAt = new Date();
|
|
227
|
+
expiresAt.setDate(expiresAt.getDate() + days);
|
|
228
|
+
return expiresAt;
|
|
229
|
+
}
|
|
200
230
|
/**
|
|
201
231
|
* Sends a claimant email notification using CommunicationEngine and TemplateEngineServer
|
|
202
232
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityClaimEngineServer.js","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngineServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IdentityClaimEngineServer.js","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngineServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngineServer.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngineServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAuB,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"QueryEngineServer.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngineServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseSingleton } from '@memberjunction/global';
|
|
2
2
|
import { LogError, LogStatus } from '@memberjunction/core';
|
|
3
3
|
import { QueryEngine } from '@memberjunction/core-entities';
|
|
4
|
-
import { SimpleVectorService } from '@memberjunction/ai-vectors-memory';
|
|
4
|
+
import { ReadStoredVector, SimpleVectorService } from '@memberjunction/ai-vectors-memory';
|
|
5
5
|
/**
|
|
6
6
|
* Server-side Query Engine that wraps QueryEngine and adds server-only capabilities.
|
|
7
7
|
*
|
|
@@ -150,23 +150,22 @@ export class QueryEngineServer extends BaseSingleton {
|
|
|
150
150
|
const queries = this.Base.Queries;
|
|
151
151
|
const entries = [];
|
|
152
152
|
for (const query of queries) {
|
|
153
|
-
if (!query.EmbeddingVector)
|
|
153
|
+
if (!query.EmbeddingVector && !query.EmbeddingVectorBinary)
|
|
154
|
+
continue; // not embedded yet
|
|
155
|
+
// Binary column first (a copy), JSON as the fallback (a parse) — see ReadStoredVector.
|
|
156
|
+
const vector = ReadStoredVector(query.EmbeddingVectorBinary, query.EmbeddingVector);
|
|
157
|
+
if (!vector) {
|
|
158
|
+
LogError(`QueryEngineServer: Failed to read the embedding for query ${query.Name}`);
|
|
154
159
|
continue;
|
|
155
|
-
try {
|
|
156
|
-
const vector = JSON.parse(query.EmbeddingVector);
|
|
157
|
-
if (!Array.isArray(vector) || vector.length === 0)
|
|
158
|
-
continue;
|
|
159
|
-
entries.push({
|
|
160
|
-
key: query.ID,
|
|
161
|
-
vector,
|
|
162
|
-
metadata: this.PackageQueryMetadata(query)
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
LogError(`QueryEngineServer: Failed to parse embedding for query ${query.Name}`);
|
|
167
160
|
}
|
|
161
|
+
entries.push({
|
|
162
|
+
key: query.ID,
|
|
163
|
+
vector,
|
|
164
|
+
metadata: this.PackageQueryMetadata(query)
|
|
165
|
+
});
|
|
168
166
|
}
|
|
169
|
-
|
|
167
|
+
// float32: embeddings are float32 at the source, and it halves the pool's memory
|
|
168
|
+
this._queryVectorService = new SimpleVectorService({ Precision: 'float32' });
|
|
170
169
|
if (entries.length > 0) {
|
|
171
170
|
this._queryVectorService.LoadVectors(entries);
|
|
172
171
|
}
|
|
@@ -234,7 +233,7 @@ export class QueryEngineServer extends BaseSingleton {
|
|
|
234
233
|
if (!embedding?.result?.vector?.length) {
|
|
235
234
|
throw new Error('Failed to generate embedding for search text');
|
|
236
235
|
}
|
|
237
|
-
const results = this._queryVectorService.
|
|
236
|
+
const results = await this._queryVectorService.FindNearestAsync(embedding.result.vector, topK, minSimilarity, 'cosine', filter);
|
|
238
237
|
return results.map(r => ({
|
|
239
238
|
queryId: r.key,
|
|
240
239
|
queryName: r.metadata?.name || 'Unknown',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngineServer.js","sourceRoot":"","sources":["../../src/engines/QueryEngineServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAA+B,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"QueryEngineServer.js","sourceRoot":"","sources":["../../src/engines/QueryEngineServer.ts"],"names":[],"mappings":"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"}
|