@chanl/scorecards-core 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/dto/create-scorecard-category.dto.d.ts +7 -0
- package/dist/dto/create-scorecard-category.dto.d.ts.map +1 -0
- package/dist/dto/create-scorecard-category.dto.js +38 -0
- package/dist/dto/create-scorecard-category.dto.js.map +1 -0
- package/dist/dto/create-scorecard-criteria.dto.d.ts +11 -0
- package/dist/dto/create-scorecard-criteria.dto.d.ts.map +1 -0
- package/dist/dto/create-scorecard-criteria.dto.js +63 -0
- package/dist/dto/create-scorecard-criteria.dto.js.map +1 -0
- package/dist/dto/create-scorecard-result.dto.d.ts +8 -0
- package/dist/dto/create-scorecard-result.dto.d.ts.map +1 -0
- package/dist/dto/create-scorecard-result.dto.js +41 -0
- package/dist/dto/create-scorecard-result.dto.js.map +1 -0
- package/dist/dto/create-scorecard.dto.d.ts +9 -0
- package/dist/dto/create-scorecard.dto.d.ts.map +1 -0
- package/dist/dto/create-scorecard.dto.js +54 -0
- package/dist/dto/create-scorecard.dto.js.map +1 -0
- package/dist/dto/index.d.ts +8 -0
- package/dist/dto/index.d.ts.map +1 -0
- package/dist/dto/index.js +18 -0
- package/dist/dto/index.js.map +1 -0
- package/dist/dto/update-scorecard-category.dto.d.ts +6 -0
- package/dist/dto/update-scorecard-category.dto.d.ts.map +1 -0
- package/dist/dto/update-scorecard-category.dto.js +9 -0
- package/dist/dto/update-scorecard-category.dto.js.map +1 -0
- package/dist/dto/update-scorecard-criteria.dto.d.ts +6 -0
- package/dist/dto/update-scorecard-criteria.dto.d.ts.map +1 -0
- package/dist/dto/update-scorecard-criteria.dto.js +9 -0
- package/dist/dto/update-scorecard-criteria.dto.js.map +1 -0
- package/dist/dto/update-scorecard.dto.d.ts +6 -0
- package/dist/dto/update-scorecard.dto.d.ts.map +1 -0
- package/dist/dto/update-scorecard.dto.js +9 -0
- package/dist/dto/update-scorecard.dto.js.map +1 -0
- package/dist/evaluation/evaluation.service.d.ts +35 -0
- package/dist/evaluation/evaluation.service.d.ts.map +1 -0
- package/dist/evaluation/evaluation.service.js +225 -0
- package/dist/evaluation/evaluation.service.js.map +1 -0
- package/dist/evaluation/index.d.ts +2 -0
- package/dist/evaluation/index.d.ts.map +1 -0
- package/dist/evaluation/index.js +6 -0
- package/dist/evaluation/index.js.map +1 -0
- package/dist/handlers/conversation-completeness.handler.d.ts +7 -0
- package/dist/handlers/conversation-completeness.handler.d.ts.map +1 -0
- package/dist/handlers/conversation-completeness.handler.js +74 -0
- package/dist/handlers/conversation-completeness.handler.js.map +1 -0
- package/dist/handlers/criteria-handler-registry.d.ts +12 -0
- package/dist/handlers/criteria-handler-registry.d.ts.map +1 -0
- package/dist/handlers/criteria-handler-registry.js +45 -0
- package/dist/handlers/criteria-handler-registry.js.map +1 -0
- package/dist/handlers/criteria-handler.interface.d.ts +81 -0
- package/dist/handlers/criteria-handler.interface.d.ts.map +1 -0
- package/dist/handlers/criteria-handler.interface.js +3 -0
- package/dist/handlers/criteria-handler.interface.js.map +1 -0
- package/dist/handlers/hallucination.handler.d.ts +7 -0
- package/dist/handlers/hallucination.handler.d.ts.map +1 -0
- package/dist/handlers/hallucination.handler.js +86 -0
- package/dist/handlers/hallucination.handler.js.map +1 -0
- package/dist/handlers/index.d.ts +13 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +29 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/keyword.handler.d.ts +7 -0
- package/dist/handlers/keyword.handler.d.ts.map +1 -0
- package/dist/handlers/keyword.handler.js +64 -0
- package/dist/handlers/keyword.handler.js.map +1 -0
- package/dist/handlers/knowledge-retention.handler.d.ts +7 -0
- package/dist/handlers/knowledge-retention.handler.d.ts.map +1 -0
- package/dist/handlers/knowledge-retention.handler.js +74 -0
- package/dist/handlers/knowledge-retention.handler.js.map +1 -0
- package/dist/handlers/prompt.handler.d.ts +7 -0
- package/dist/handlers/prompt.handler.d.ts.map +1 -0
- package/dist/handlers/prompt.handler.js +77 -0
- package/dist/handlers/prompt.handler.js.map +1 -0
- package/dist/handlers/rag-faithfulness.handler.d.ts +7 -0
- package/dist/handlers/rag-faithfulness.handler.d.ts.map +1 -0
- package/dist/handlers/rag-faithfulness.handler.js +110 -0
- package/dist/handlers/rag-faithfulness.handler.js.map +1 -0
- package/dist/handlers/response-time.handler.d.ts +7 -0
- package/dist/handlers/response-time.handler.d.ts.map +1 -0
- package/dist/handlers/response-time.handler.js +56 -0
- package/dist/handlers/response-time.handler.js.map +1 -0
- package/dist/handlers/role-adherence.handler.d.ts +7 -0
- package/dist/handlers/role-adherence.handler.d.ts.map +1 -0
- package/dist/handlers/role-adherence.handler.js +74 -0
- package/dist/handlers/role-adherence.handler.js.map +1 -0
- package/dist/handlers/scoring-utils.d.ts +10 -0
- package/dist/handlers/scoring-utils.d.ts.map +1 -0
- package/dist/handlers/scoring-utils.js +88 -0
- package/dist/handlers/scoring-utils.js.map +1 -0
- package/dist/handlers/tool-call.handler.d.ts +7 -0
- package/dist/handlers/tool-call.handler.d.ts.map +1 -0
- package/dist/handlers/tool-call.handler.js +43 -0
- package/dist/handlers/tool-call.handler.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +5 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +23 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/scorecard-category.schema.d.ts +20 -0
- package/dist/schemas/scorecard-category.schema.d.ts.map +1 -0
- package/dist/schemas/scorecard-category.schema.js +83 -0
- package/dist/schemas/scorecard-category.schema.js.map +1 -0
- package/dist/schemas/scorecard-criteria.schema.d.ts +92 -0
- package/dist/schemas/scorecard-criteria.schema.d.ts.map +1 -0
- package/dist/schemas/scorecard-criteria.schema.js +153 -0
- package/dist/schemas/scorecard-criteria.schema.js.map +1 -0
- package/dist/schemas/scorecard-result.schema.d.ts +47 -0
- package/dist/schemas/scorecard-result.schema.d.ts.map +1 -0
- package/dist/schemas/scorecard-result.schema.js +96 -0
- package/dist/schemas/scorecard-result.schema.js.map +1 -0
- package/dist/schemas/scorecard.schema.d.ts +21 -0
- package/dist/schemas/scorecard.schema.d.ts.map +1 -0
- package/dist/schemas/scorecard.schema.js +90 -0
- package/dist/schemas/scorecard.schema.js.map +1 -0
- package/dist/scorecards.controller.d.ts +104 -0
- package/dist/scorecards.controller.d.ts.map +1 -0
- package/dist/scorecards.controller.js +366 -0
- package/dist/scorecards.controller.js.map +1 -0
- package/dist/scorecards.module.d.ts +3 -0
- package/dist/scorecards.module.d.ts.map +1 -0
- package/dist/scorecards.module.js +59 -0
- package/dist/scorecards.module.js.map +1 -0
- package/dist/scorecards.service.d.ts +89 -0
- package/dist/scorecards.service.d.ts.map +1 -0
- package/dist/scorecards.service.js +587 -0
- package/dist/scorecards.service.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkThreshold = checkThreshold;
|
|
4
|
+
exports.normalizeScore = normalizeScore;
|
|
5
|
+
const schemas_1 = require("../schemas");
|
|
6
|
+
/**
|
|
7
|
+
* Check whether a result passes the criteria's threshold.
|
|
8
|
+
*/
|
|
9
|
+
function checkThreshold(criteria, result) {
|
|
10
|
+
if (!criteria.threshold)
|
|
11
|
+
return true;
|
|
12
|
+
const evalType = (0, schemas_1.getEvaluationType)(criteria);
|
|
13
|
+
if (evalType === 'boolean' && (0, schemas_1.isBooleanThreshold)(criteria.threshold)) {
|
|
14
|
+
return result === criteria.threshold.expectedValue;
|
|
15
|
+
}
|
|
16
|
+
if ((evalType === 'number' || evalType === 'score') &&
|
|
17
|
+
(0, schemas_1.isNumericalThreshold)(criteria.threshold)) {
|
|
18
|
+
const { min, max } = criteria.threshold;
|
|
19
|
+
if (min !== undefined && result < min)
|
|
20
|
+
return false;
|
|
21
|
+
if (max !== undefined && result > max)
|
|
22
|
+
return false;
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (evalType === 'percentage' && (0, schemas_1.isPercentageThreshold)(criteria.threshold)) {
|
|
26
|
+
const { minPercentage, maxPercentage } = criteria.threshold;
|
|
27
|
+
if (minPercentage !== undefined && result < minPercentage)
|
|
28
|
+
return false;
|
|
29
|
+
if (maxPercentage !== undefined && result > maxPercentage)
|
|
30
|
+
return false;
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
// Fallback: try numerical threshold
|
|
34
|
+
if ((0, schemas_1.isNumericalThreshold)(criteria.threshold)) {
|
|
35
|
+
const { min, max } = criteria.threshold;
|
|
36
|
+
if (min !== undefined && result < min)
|
|
37
|
+
return false;
|
|
38
|
+
if (max !== undefined && result > max)
|
|
39
|
+
return false;
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Normalize a criteria result to the 0-10 scale for category averaging.
|
|
46
|
+
*/
|
|
47
|
+
function normalizeScore(result, criteria, passed) {
|
|
48
|
+
const evalType = (0, schemas_1.getEvaluationType)(criteria);
|
|
49
|
+
// Score type: already 0-10, just clamp
|
|
50
|
+
if (evalType === 'score') {
|
|
51
|
+
return Math.max(0, Math.min(10, Number(result) || 0));
|
|
52
|
+
}
|
|
53
|
+
// Boolean type: use `passed` flag if available (handles inverted cases like must_not_contain)
|
|
54
|
+
if (evalType === 'boolean') {
|
|
55
|
+
if (passed !== undefined)
|
|
56
|
+
return passed ? 10 : 0;
|
|
57
|
+
return result === true ? 10 : 0;
|
|
58
|
+
}
|
|
59
|
+
// Percentage type: 0-100 → 0-10
|
|
60
|
+
if (evalType === 'percentage') {
|
|
61
|
+
return Math.max(0, Math.min(10, (Number(result) || 0) / 10));
|
|
62
|
+
}
|
|
63
|
+
// Number type: normalize based on threshold
|
|
64
|
+
if (evalType === 'number' && (0, schemas_1.isNumericalThreshold)(criteria.threshold)) {
|
|
65
|
+
const { min, max } = criteria.threshold;
|
|
66
|
+
const val = Number(result) || 0;
|
|
67
|
+
if (min !== undefined && max !== undefined) {
|
|
68
|
+
if (val >= min && val <= max)
|
|
69
|
+
return 10;
|
|
70
|
+
if (val < min)
|
|
71
|
+
return Math.max(0, 10 - (min - val));
|
|
72
|
+
return Math.max(0, 10 - (val - max));
|
|
73
|
+
}
|
|
74
|
+
if (min !== undefined) {
|
|
75
|
+
if (val >= min)
|
|
76
|
+
return 10;
|
|
77
|
+
return Math.max(0, Math.min(10, 10 * (val / min)));
|
|
78
|
+
}
|
|
79
|
+
if (max !== undefined) {
|
|
80
|
+
if (val <= max)
|
|
81
|
+
return 10;
|
|
82
|
+
return Math.max(0, 10 - (val - max));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Default: binary pass/fail
|
|
86
|
+
return checkThreshold(criteria, result) ? 10 : 0;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=scoring-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoring-utils.js","sourceRoot":"","sources":["../../src/handlers/scoring-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ScorecardCriteria } from '../schemas';
|
|
2
|
+
import { CriteriaHandler, CriteriaHandlerResult, EvaluationContext } from './criteria-handler.interface';
|
|
3
|
+
export declare class ToolCallHandler implements CriteriaHandler {
|
|
4
|
+
readonly type = "tool_call";
|
|
5
|
+
evaluate(criteria: ScorecardCriteria, context: EvaluationContext): Promise<CriteriaHandlerResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=tool-call.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/tool-call.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,eAAe;IAEtB,QAAQ,CACZ,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,qBAAqB,CAAC;CAwClC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToolCallHandler = void 0;
|
|
4
|
+
class ToolCallHandler {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.type = 'tool_call';
|
|
7
|
+
}
|
|
8
|
+
async evaluate(criteria, context) {
|
|
9
|
+
const settings = criteria.settings;
|
|
10
|
+
const expectedTools = Array.isArray(settings.expectedTool)
|
|
11
|
+
? settings.expectedTool
|
|
12
|
+
: [settings.expectedTool];
|
|
13
|
+
const toolCalls = context.toolCalls || [];
|
|
14
|
+
// No tools were available in the conversation — can't evaluate tool usage
|
|
15
|
+
if (toolCalls.length === 0) {
|
|
16
|
+
return {
|
|
17
|
+
result: true,
|
|
18
|
+
passed: true,
|
|
19
|
+
reasoning: 'No tools available in this conversation',
|
|
20
|
+
evidence: [],
|
|
21
|
+
notApplicable: true,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const evidence = [];
|
|
25
|
+
const found = expectedTools.some((tool) => toolCalls.some((tc) => {
|
|
26
|
+
const match = tc.name === tool || tc.function?.name === tool;
|
|
27
|
+
if (match && evidence.length < 2) {
|
|
28
|
+
evidence.push(`Called: ${tc.name || tc.function?.name}`);
|
|
29
|
+
}
|
|
30
|
+
return match;
|
|
31
|
+
}));
|
|
32
|
+
return {
|
|
33
|
+
result: found,
|
|
34
|
+
passed: found,
|
|
35
|
+
reasoning: found
|
|
36
|
+
? `Expected tool(s) called: ${expectedTools.join(', ')}`
|
|
37
|
+
: `Expected tool(s) NOT called: ${expectedTools.join(', ')}`,
|
|
38
|
+
evidence,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ToolCallHandler = ToolCallHandler;
|
|
43
|
+
//# sourceMappingURL=tool-call.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call.handler.js","sourceRoot":"","sources":["../../src/handlers/tool-call.handler.ts"],"names":[],"mappings":";;;AAOA,MAAa,eAAe;IAA5B;QACW,SAAI,GAAG,WAAW,CAAC;IA6C9B,CAAC;IA3CC,KAAK,CAAC,QAAQ,CACZ,QAA2B,EAC3B,OAA0B;QAE1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAoC,CAAC;QAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YACxD,CAAC,CAAC,QAAQ,CAAC,YAAY;YACvB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAE1C,0EAA0E;QAC1E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,yCAAyC;gBACpD,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACxC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACpB,MAAM,KAAK,GACT,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC;YACjD,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CACH,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;gBACd,CAAC,CAAC,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxD,CAAC,CAAC,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9D,QAAQ;SACT,CAAC;IACJ,CAAC;CACF;AA9CD,0CA8CC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { ScorecardsModule } from './scorecards.module';
|
|
2
|
+
export { ScorecardsService, PaginatedResponse } from './scorecards.service';
|
|
3
|
+
export { ScorecardsController } from './scorecards.controller';
|
|
4
|
+
export { Scorecard, ScorecardDocument, ScorecardSchema, ScorecardCategory, ScorecardCategoryDocument, ScorecardCategorySchema, ScorecardCriteria, ScorecardCriteriaDocument, ScorecardCriteriaSchema, ScorecardResult, ScorecardResultDocument, ScorecardResultSchema, CriteriaType, CriteriaSettings, PromptCriteriaSettings, KeywordCriteriaSettings, ResponseTimeCriteriaSettings, ToolCallCriteriaSettings, Threshold, BooleanThreshold, NumericalThreshold, PercentageThreshold, isPromptSettings, isKeywordSettings, isBooleanThreshold, isNumericalThreshold, isPercentageThreshold, getEvaluationType, CriteriaResult, AnalysisMetadata, } from './schemas';
|
|
5
|
+
export { CreateScorecardDto, UpdateScorecardDto, CreateScorecardCategoryDto, UpdateScorecardCategoryDto, CreateScorecardCriteriaDto, UpdateScorecardCriteriaDto, CreateScorecardResultDto, } from './dto';
|
|
6
|
+
export { CriteriaHandler, CriteriaHandlerResult, EvaluationContext, CriteriaHandlerRegistry, checkThreshold, normalizeScore, KeywordHandler, PromptHandler, ResponseTimeHandler, ToolCallHandler, } from './handlers';
|
|
7
|
+
export { EvaluationService, EvaluateOptions, EvaluationResult, } from './evaluation';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @chanl-ai/scorecards-core
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.EvaluationService = exports.ToolCallHandler = exports.ResponseTimeHandler = exports.PromptHandler = exports.KeywordHandler = exports.normalizeScore = exports.checkThreshold = exports.CriteriaHandlerRegistry = exports.CreateScorecardResultDto = exports.UpdateScorecardCriteriaDto = exports.CreateScorecardCriteriaDto = exports.UpdateScorecardCategoryDto = exports.CreateScorecardCategoryDto = exports.UpdateScorecardDto = exports.CreateScorecardDto = exports.getEvaluationType = exports.isPercentageThreshold = exports.isNumericalThreshold = exports.isBooleanThreshold = exports.isKeywordSettings = exports.isPromptSettings = exports.CriteriaType = exports.ScorecardResultSchema = exports.ScorecardResult = exports.ScorecardCriteriaSchema = exports.ScorecardCriteria = exports.ScorecardCategorySchema = exports.ScorecardCategory = exports.ScorecardSchema = exports.Scorecard = exports.ScorecardsController = exports.ScorecardsService = exports.ScorecardsModule = void 0;
|
|
5
|
+
// Module
|
|
6
|
+
var scorecards_module_1 = require("./scorecards.module");
|
|
7
|
+
Object.defineProperty(exports, "ScorecardsModule", { enumerable: true, get: function () { return scorecards_module_1.ScorecardsModule; } });
|
|
8
|
+
// Service
|
|
9
|
+
var scorecards_service_1 = require("./scorecards.service");
|
|
10
|
+
Object.defineProperty(exports, "ScorecardsService", { enumerable: true, get: function () { return scorecards_service_1.ScorecardsService; } });
|
|
11
|
+
// Controller
|
|
12
|
+
var scorecards_controller_1 = require("./scorecards.controller");
|
|
13
|
+
Object.defineProperty(exports, "ScorecardsController", { enumerable: true, get: function () { return scorecards_controller_1.ScorecardsController; } });
|
|
14
|
+
// Schemas
|
|
15
|
+
var schemas_1 = require("./schemas");
|
|
16
|
+
Object.defineProperty(exports, "Scorecard", { enumerable: true, get: function () { return schemas_1.Scorecard; } });
|
|
17
|
+
Object.defineProperty(exports, "ScorecardSchema", { enumerable: true, get: function () { return schemas_1.ScorecardSchema; } });
|
|
18
|
+
Object.defineProperty(exports, "ScorecardCategory", { enumerable: true, get: function () { return schemas_1.ScorecardCategory; } });
|
|
19
|
+
Object.defineProperty(exports, "ScorecardCategorySchema", { enumerable: true, get: function () { return schemas_1.ScorecardCategorySchema; } });
|
|
20
|
+
Object.defineProperty(exports, "ScorecardCriteria", { enumerable: true, get: function () { return schemas_1.ScorecardCriteria; } });
|
|
21
|
+
Object.defineProperty(exports, "ScorecardCriteriaSchema", { enumerable: true, get: function () { return schemas_1.ScorecardCriteriaSchema; } });
|
|
22
|
+
Object.defineProperty(exports, "ScorecardResult", { enumerable: true, get: function () { return schemas_1.ScorecardResult; } });
|
|
23
|
+
Object.defineProperty(exports, "ScorecardResultSchema", { enumerable: true, get: function () { return schemas_1.ScorecardResultSchema; } });
|
|
24
|
+
Object.defineProperty(exports, "CriteriaType", { enumerable: true, get: function () { return schemas_1.CriteriaType; } });
|
|
25
|
+
Object.defineProperty(exports, "isPromptSettings", { enumerable: true, get: function () { return schemas_1.isPromptSettings; } });
|
|
26
|
+
Object.defineProperty(exports, "isKeywordSettings", { enumerable: true, get: function () { return schemas_1.isKeywordSettings; } });
|
|
27
|
+
Object.defineProperty(exports, "isBooleanThreshold", { enumerable: true, get: function () { return schemas_1.isBooleanThreshold; } });
|
|
28
|
+
Object.defineProperty(exports, "isNumericalThreshold", { enumerable: true, get: function () { return schemas_1.isNumericalThreshold; } });
|
|
29
|
+
Object.defineProperty(exports, "isPercentageThreshold", { enumerable: true, get: function () { return schemas_1.isPercentageThreshold; } });
|
|
30
|
+
Object.defineProperty(exports, "getEvaluationType", { enumerable: true, get: function () { return schemas_1.getEvaluationType; } });
|
|
31
|
+
// DTOs
|
|
32
|
+
var dto_1 = require("./dto");
|
|
33
|
+
Object.defineProperty(exports, "CreateScorecardDto", { enumerable: true, get: function () { return dto_1.CreateScorecardDto; } });
|
|
34
|
+
Object.defineProperty(exports, "UpdateScorecardDto", { enumerable: true, get: function () { return dto_1.UpdateScorecardDto; } });
|
|
35
|
+
Object.defineProperty(exports, "CreateScorecardCategoryDto", { enumerable: true, get: function () { return dto_1.CreateScorecardCategoryDto; } });
|
|
36
|
+
Object.defineProperty(exports, "UpdateScorecardCategoryDto", { enumerable: true, get: function () { return dto_1.UpdateScorecardCategoryDto; } });
|
|
37
|
+
Object.defineProperty(exports, "CreateScorecardCriteriaDto", { enumerable: true, get: function () { return dto_1.CreateScorecardCriteriaDto; } });
|
|
38
|
+
Object.defineProperty(exports, "UpdateScorecardCriteriaDto", { enumerable: true, get: function () { return dto_1.UpdateScorecardCriteriaDto; } });
|
|
39
|
+
Object.defineProperty(exports, "CreateScorecardResultDto", { enumerable: true, get: function () { return dto_1.CreateScorecardResultDto; } });
|
|
40
|
+
// Handlers
|
|
41
|
+
var handlers_1 = require("./handlers");
|
|
42
|
+
Object.defineProperty(exports, "CriteriaHandlerRegistry", { enumerable: true, get: function () { return handlers_1.CriteriaHandlerRegistry; } });
|
|
43
|
+
Object.defineProperty(exports, "checkThreshold", { enumerable: true, get: function () { return handlers_1.checkThreshold; } });
|
|
44
|
+
Object.defineProperty(exports, "normalizeScore", { enumerable: true, get: function () { return handlers_1.normalizeScore; } });
|
|
45
|
+
Object.defineProperty(exports, "KeywordHandler", { enumerable: true, get: function () { return handlers_1.KeywordHandler; } });
|
|
46
|
+
Object.defineProperty(exports, "PromptHandler", { enumerable: true, get: function () { return handlers_1.PromptHandler; } });
|
|
47
|
+
Object.defineProperty(exports, "ResponseTimeHandler", { enumerable: true, get: function () { return handlers_1.ResponseTimeHandler; } });
|
|
48
|
+
Object.defineProperty(exports, "ToolCallHandler", { enumerable: true, get: function () { return handlers_1.ToolCallHandler; } });
|
|
49
|
+
// Evaluation
|
|
50
|
+
var evaluation_1 = require("./evaluation");
|
|
51
|
+
Object.defineProperty(exports, "EvaluationService", { enumerable: true, get: function () { return evaluation_1.EvaluationService; } });
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4BAA4B;;;AAE5B,SAAS;AACT,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,UAAU;AACV,2DAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAE1B,aAAa;AACb,iEAA+D;AAAtD,6HAAA,oBAAoB,OAAA;AAE7B,UAAU;AACV,qCA+BmB;AA9BjB,oGAAA,SAAS,OAAA;AAET,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AAEjB,kHAAA,uBAAuB,OAAA;AACvB,4GAAA,iBAAiB,OAAA;AAEjB,kHAAA,uBAAuB,OAAA;AACvB,0GAAA,eAAe,OAAA;AAEf,gHAAA,qBAAqB,OAAA;AACrB,uGAAA,YAAY,OAAA;AAUZ,2GAAA,gBAAgB,OAAA;AAChB,4GAAA,iBAAiB,OAAA;AACjB,6GAAA,kBAAkB,OAAA;AAClB,+GAAA,oBAAoB,OAAA;AACpB,gHAAA,qBAAqB,OAAA;AACrB,4GAAA,iBAAiB,OAAA;AAKnB,OAAO;AACP,6BAQe;AAPb,yGAAA,kBAAkB,OAAA;AAClB,yGAAA,kBAAkB,OAAA;AAClB,iHAAA,0BAA0B,OAAA;AAC1B,iHAAA,0BAA0B,OAAA;AAC1B,iHAAA,0BAA0B,OAAA;AAC1B,iHAAA,0BAA0B,OAAA;AAC1B,+GAAA,wBAAwB,OAAA;AAG1B,WAAW;AACX,uCAWoB;AAPlB,mHAAA,uBAAuB,OAAA;AACvB,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,2GAAA,eAAe,OAAA;AAGjB,aAAa;AACb,2CAIsB;AAHpB,+GAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Scorecard, ScorecardDocument, ScorecardSchema, } from './scorecard.schema';
|
|
2
|
+
export { ScorecardCategory, ScorecardCategoryDocument, ScorecardCategorySchema, } from './scorecard-category.schema';
|
|
3
|
+
export { ScorecardCriteria, ScorecardCriteriaDocument, ScorecardCriteriaSchema, CriteriaType, CriteriaSettings, PromptCriteriaSettings, KeywordCriteriaSettings, ResponseTimeCriteriaSettings, ToolCallCriteriaSettings, HallucinationCriteriaSettings, KnowledgeRetentionCriteriaSettings, ConversationCompletenessCriteriaSettings, RoleAdherenceCriteriaSettings, RagFaithfulnessCriteriaSettings, Threshold, BooleanThreshold, NumericalThreshold, PercentageThreshold, isPromptSettings, isKeywordSettings, isBooleanThreshold, isNumericalThreshold, isPercentageThreshold, getEvaluationType, } from './scorecard-criteria.schema';
|
|
4
|
+
export { ScorecardResult, ScorecardResultDocument, ScorecardResultSchema, CriteriaResult, AnalysisMetadata, } from './scorecard-result.schema';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,kCAAkC,EAClC,wCAAwC,EACxC,6BAA6B,EAC7B,+BAA+B,EAC/B,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GACjB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScorecardResultSchema = exports.ScorecardResult = exports.getEvaluationType = exports.isPercentageThreshold = exports.isNumericalThreshold = exports.isBooleanThreshold = exports.isKeywordSettings = exports.isPromptSettings = exports.CriteriaType = exports.ScorecardCriteriaSchema = exports.ScorecardCriteria = exports.ScorecardCategorySchema = exports.ScorecardCategory = exports.ScorecardSchema = exports.Scorecard = void 0;
|
|
4
|
+
var scorecard_schema_1 = require("./scorecard.schema");
|
|
5
|
+
Object.defineProperty(exports, "Scorecard", { enumerable: true, get: function () { return scorecard_schema_1.Scorecard; } });
|
|
6
|
+
Object.defineProperty(exports, "ScorecardSchema", { enumerable: true, get: function () { return scorecard_schema_1.ScorecardSchema; } });
|
|
7
|
+
var scorecard_category_schema_1 = require("./scorecard-category.schema");
|
|
8
|
+
Object.defineProperty(exports, "ScorecardCategory", { enumerable: true, get: function () { return scorecard_category_schema_1.ScorecardCategory; } });
|
|
9
|
+
Object.defineProperty(exports, "ScorecardCategorySchema", { enumerable: true, get: function () { return scorecard_category_schema_1.ScorecardCategorySchema; } });
|
|
10
|
+
var scorecard_criteria_schema_1 = require("./scorecard-criteria.schema");
|
|
11
|
+
Object.defineProperty(exports, "ScorecardCriteria", { enumerable: true, get: function () { return scorecard_criteria_schema_1.ScorecardCriteria; } });
|
|
12
|
+
Object.defineProperty(exports, "ScorecardCriteriaSchema", { enumerable: true, get: function () { return scorecard_criteria_schema_1.ScorecardCriteriaSchema; } });
|
|
13
|
+
Object.defineProperty(exports, "CriteriaType", { enumerable: true, get: function () { return scorecard_criteria_schema_1.CriteriaType; } });
|
|
14
|
+
Object.defineProperty(exports, "isPromptSettings", { enumerable: true, get: function () { return scorecard_criteria_schema_1.isPromptSettings; } });
|
|
15
|
+
Object.defineProperty(exports, "isKeywordSettings", { enumerable: true, get: function () { return scorecard_criteria_schema_1.isKeywordSettings; } });
|
|
16
|
+
Object.defineProperty(exports, "isBooleanThreshold", { enumerable: true, get: function () { return scorecard_criteria_schema_1.isBooleanThreshold; } });
|
|
17
|
+
Object.defineProperty(exports, "isNumericalThreshold", { enumerable: true, get: function () { return scorecard_criteria_schema_1.isNumericalThreshold; } });
|
|
18
|
+
Object.defineProperty(exports, "isPercentageThreshold", { enumerable: true, get: function () { return scorecard_criteria_schema_1.isPercentageThreshold; } });
|
|
19
|
+
Object.defineProperty(exports, "getEvaluationType", { enumerable: true, get: function () { return scorecard_criteria_schema_1.getEvaluationType; } });
|
|
20
|
+
var scorecard_result_schema_1 = require("./scorecard-result.schema");
|
|
21
|
+
Object.defineProperty(exports, "ScorecardResult", { enumerable: true, get: function () { return scorecard_result_schema_1.ScorecardResult; } });
|
|
22
|
+
Object.defineProperty(exports, "ScorecardResultSchema", { enumerable: true, get: function () { return scorecard_result_schema_1.ScorecardResultSchema; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":";;;AAAA,uDAI4B;AAH1B,6GAAA,SAAS,OAAA;AAET,mHAAA,eAAe,OAAA;AAGjB,yEAIqC;AAHnC,8HAAA,iBAAiB,OAAA;AAEjB,oIAAA,uBAAuB,OAAA;AAGzB,yEAyBqC;AAxBnC,8HAAA,iBAAiB,OAAA;AAEjB,oIAAA,uBAAuB,OAAA;AACvB,yHAAA,YAAY,OAAA;AAeZ,6HAAA,gBAAgB,OAAA;AAChB,8HAAA,iBAAiB,OAAA;AACjB,+HAAA,kBAAkB,OAAA;AAClB,iIAAA,oBAAoB,OAAA;AACpB,kIAAA,qBAAqB,OAAA;AACrB,8HAAA,iBAAiB,OAAA;AAGnB,qEAMmC;AALjC,0HAAA,eAAe,OAAA;AAEf,gIAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Document, Types } from 'mongoose';
|
|
2
|
+
export type ScorecardCategoryDocument = ScorecardCategory & Document;
|
|
3
|
+
export declare class ScorecardCategory {
|
|
4
|
+
_id?: Types.ObjectId;
|
|
5
|
+
scorecardId: Types.ObjectId;
|
|
6
|
+
name: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
weight: number;
|
|
9
|
+
criteriaIds: Types.ObjectId[];
|
|
10
|
+
order: number;
|
|
11
|
+
version: number;
|
|
12
|
+
createdAt?: Date;
|
|
13
|
+
updatedAt?: Date;
|
|
14
|
+
}
|
|
15
|
+
export declare const ScorecardCategorySchema: import("mongoose").Schema<ScorecardCategory, import("mongoose").Model<ScorecardCategory, any, any, any, Document<unknown, any, ScorecardCategory> & ScorecardCategory & Required<{
|
|
16
|
+
_id: Types.ObjectId;
|
|
17
|
+
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ScorecardCategory, Document<unknown, {}, import("mongoose").FlatRecord<ScorecardCategory>> & import("mongoose").FlatRecord<ScorecardCategory> & Required<{
|
|
18
|
+
_id: Types.ObjectId;
|
|
19
|
+
}>>;
|
|
20
|
+
//# sourceMappingURL=scorecard-category.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scorecard-category.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/scorecard-category.schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAuBrE,qBACa,iBAAiB;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAGrB,WAAW,EAAG,KAAK,CAAC,QAAQ,CAAC;IAG7B,IAAI,EAAG,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,MAAM,EAAG,MAAM,CAAC;IAMhB,WAAW,EAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAG/B,KAAK,EAAG,MAAM,CAAC;IAGf,OAAO,EAAG,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,uBAAuB;;;;GACa,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScorecardCategorySchema = exports.ScorecardCategory = void 0;
|
|
13
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
|
+
const mongoose_2 = require("mongoose");
|
|
15
|
+
function virtualIdPlugin(schema) {
|
|
16
|
+
schema.set('toJSON', {
|
|
17
|
+
virtuals: true,
|
|
18
|
+
versionKey: false,
|
|
19
|
+
transform: (_doc, ret) => {
|
|
20
|
+
ret.id = ret._id?.toString();
|
|
21
|
+
delete ret._id;
|
|
22
|
+
return ret;
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
schema.set('toObject', {
|
|
26
|
+
virtuals: true,
|
|
27
|
+
versionKey: false,
|
|
28
|
+
transform: (_doc, ret) => {
|
|
29
|
+
ret.id = ret._id?.toString();
|
|
30
|
+
delete ret._id;
|
|
31
|
+
return ret;
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
let ScorecardCategory = class ScorecardCategory {
|
|
36
|
+
};
|
|
37
|
+
exports.ScorecardCategory = ScorecardCategory;
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, mongoose_1.Prop)({ required: true, type: mongoose_2.Types.ObjectId, ref: 'Scorecard' }),
|
|
40
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
41
|
+
], ScorecardCategory.prototype, "scorecardId", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, mongoose_1.Prop)({ required: true }),
|
|
44
|
+
__metadata("design:type", String)
|
|
45
|
+
], ScorecardCategory.prototype, "name", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, mongoose_1.Prop)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], ScorecardCategory.prototype, "description", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, mongoose_1.Prop)({ default: 100, min: 0, max: 100 }),
|
|
52
|
+
__metadata("design:type", Number)
|
|
53
|
+
], ScorecardCategory.prototype, "weight", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, mongoose_1.Prop)({
|
|
56
|
+
type: [{ type: mongoose_2.Types.ObjectId, ref: 'ScorecardCriteria' }],
|
|
57
|
+
default: [],
|
|
58
|
+
}),
|
|
59
|
+
__metadata("design:type", Array)
|
|
60
|
+
], ScorecardCategory.prototype, "criteriaIds", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, mongoose_1.Prop)({ default: 0 }),
|
|
63
|
+
__metadata("design:type", Number)
|
|
64
|
+
], ScorecardCategory.prototype, "order", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, mongoose_1.Prop)({ default: 1 }),
|
|
67
|
+
__metadata("design:type", Number)
|
|
68
|
+
], ScorecardCategory.prototype, "version", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, mongoose_1.Prop)({ type: Date }),
|
|
71
|
+
__metadata("design:type", Date)
|
|
72
|
+
], ScorecardCategory.prototype, "createdAt", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, mongoose_1.Prop)({ type: Date }),
|
|
75
|
+
__metadata("design:type", Date)
|
|
76
|
+
], ScorecardCategory.prototype, "updatedAt", void 0);
|
|
77
|
+
exports.ScorecardCategory = ScorecardCategory = __decorate([
|
|
78
|
+
(0, mongoose_1.Schema)({ collection: 'scorecard_categories', timestamps: true })
|
|
79
|
+
], ScorecardCategory);
|
|
80
|
+
exports.ScorecardCategorySchema = mongoose_1.SchemaFactory.createForClass(ScorecardCategory);
|
|
81
|
+
exports.ScorecardCategorySchema.index({ scorecardId: 1 });
|
|
82
|
+
exports.ScorecardCategorySchema.plugin(virtualIdPlugin);
|
|
83
|
+
//# sourceMappingURL=scorecard-category.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scorecard-category.schema.js","sourceRoot":"","sources":["../../src/schemas/scorecard-category.schema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA+D;AAC/D,uCAA2C;AAI3C,SAAS,eAAe,CAAC,MAAW;IAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;QACnB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;YACjC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;QACrB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,CAAC,IAAS,EAAE,GAAQ,EAAE,EAAE;YACjC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAgC7B,CAAA;AAhCY,8CAAiB;AAI5B;IADC,IAAA,eAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;8BACnD,gBAAK,CAAC,QAAQ;sDAAC;AAG7B;IADC,IAAA,eAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACX;AAGd;IADC,IAAA,eAAI,GAAE;;sDACc;AAGrB;IADC,IAAA,eAAI,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;;iDACzB;AAMhB;IAJC,IAAA,eAAI,EAAC;QACJ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC;QAC1D,OAAO,EAAE,EAAE;KACZ,CAAC;;sDAC6B;AAG/B;IADC,IAAA,eAAI,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;gDACN;AAGf;IADC,IAAA,eAAI,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;kDACJ;AAGjB;IADC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACT,IAAI;oDAAC;AAGjB;IADC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACT,IAAI;oDAAC;4BA/BN,iBAAiB;IAD7B,IAAA,iBAAM,EAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GACpD,iBAAiB,CAgC7B;AAEY,QAAA,uBAAuB,GAClC,wBAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAClD,+BAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,+BAAuB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Document, Types, Schema as MongooseSchema } from 'mongoose';
|
|
2
|
+
export type ScorecardCriteriaDocument = ScorecardCriteria & Document;
|
|
3
|
+
export declare enum CriteriaType {
|
|
4
|
+
PROMPT = "prompt",
|
|
5
|
+
KEYWORD = "keyword",
|
|
6
|
+
RESPONSE_TIME = "response_time",
|
|
7
|
+
TOOL_CALL = "tool_call",
|
|
8
|
+
HALLUCINATION = "hallucination",
|
|
9
|
+
KNOWLEDGE_RETENTION = "knowledge_retention",
|
|
10
|
+
CONVERSATION_COMPLETENESS = "conversation_completeness",
|
|
11
|
+
ROLE_ADHERENCE = "role_adherence",
|
|
12
|
+
RAG_FAITHFULNESS = "rag_faithfulness"
|
|
13
|
+
}
|
|
14
|
+
export interface PromptCriteriaSettings {
|
|
15
|
+
description: string;
|
|
16
|
+
evaluationType: 'boolean' | 'score';
|
|
17
|
+
}
|
|
18
|
+
export interface KeywordCriteriaSettings {
|
|
19
|
+
matchType: 'must_contain' | 'must_not_contain' | 'any' | 'none';
|
|
20
|
+
keyword: string | string[];
|
|
21
|
+
/** Plural alias — some DB documents store `keywords` instead of `keyword` */
|
|
22
|
+
keywords?: string | string[];
|
|
23
|
+
caseSensitive?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ResponseTimeCriteriaSettings {
|
|
26
|
+
participant: 'agent' | 'customer' | 'both';
|
|
27
|
+
}
|
|
28
|
+
export interface ToolCallCriteriaSettings {
|
|
29
|
+
expectedTool: string | string[];
|
|
30
|
+
executionCondition?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface HallucinationCriteriaSettings {
|
|
33
|
+
description?: string;
|
|
34
|
+
evaluationType?: 'boolean' | 'score';
|
|
35
|
+
}
|
|
36
|
+
export interface KnowledgeRetentionCriteriaSettings {
|
|
37
|
+
description?: string;
|
|
38
|
+
evaluationType?: 'boolean' | 'score';
|
|
39
|
+
}
|
|
40
|
+
export interface ConversationCompletenessCriteriaSettings {
|
|
41
|
+
description?: string;
|
|
42
|
+
evaluationType?: 'boolean' | 'score';
|
|
43
|
+
}
|
|
44
|
+
export interface RoleAdherenceCriteriaSettings {
|
|
45
|
+
description?: string;
|
|
46
|
+
evaluationType?: 'boolean' | 'score';
|
|
47
|
+
}
|
|
48
|
+
export interface RagFaithfulnessCriteriaSettings {
|
|
49
|
+
description?: string;
|
|
50
|
+
evaluationType?: 'boolean' | 'score';
|
|
51
|
+
retrievalToolNames?: string[];
|
|
52
|
+
}
|
|
53
|
+
export type CriteriaSettings = PromptCriteriaSettings | KeywordCriteriaSettings | ResponseTimeCriteriaSettings | ToolCallCriteriaSettings | HallucinationCriteriaSettings | KnowledgeRetentionCriteriaSettings | ConversationCompletenessCriteriaSettings | RoleAdherenceCriteriaSettings | RagFaithfulnessCriteriaSettings;
|
|
54
|
+
export interface BooleanThreshold {
|
|
55
|
+
expectedValue: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface NumericalThreshold {
|
|
58
|
+
min?: number;
|
|
59
|
+
max?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface PercentageThreshold {
|
|
62
|
+
minPercentage?: number;
|
|
63
|
+
maxPercentage?: number;
|
|
64
|
+
}
|
|
65
|
+
export type Threshold = BooleanThreshold | NumericalThreshold | PercentageThreshold;
|
|
66
|
+
export declare function isPromptSettings(s: any): s is PromptCriteriaSettings;
|
|
67
|
+
export declare function isKeywordSettings(s: any): s is KeywordCriteriaSettings;
|
|
68
|
+
export declare function isBooleanThreshold(t: any): t is BooleanThreshold;
|
|
69
|
+
export declare function isNumericalThreshold(t: any): t is NumericalThreshold;
|
|
70
|
+
export declare function isPercentageThreshold(t: any): t is PercentageThreshold;
|
|
71
|
+
export declare function getEvaluationType(criteria: ScorecardCriteria): 'boolean' | 'score' | 'number' | 'percentage';
|
|
72
|
+
export declare class ScorecardCriteria {
|
|
73
|
+
_id?: Types.ObjectId;
|
|
74
|
+
scorecardId: Types.ObjectId;
|
|
75
|
+
categoryId: Types.ObjectId;
|
|
76
|
+
key: string;
|
|
77
|
+
name: string;
|
|
78
|
+
description?: string;
|
|
79
|
+
type: string;
|
|
80
|
+
settings: CriteriaSettings;
|
|
81
|
+
threshold?: Threshold;
|
|
82
|
+
version: number;
|
|
83
|
+
isActive: boolean;
|
|
84
|
+
createdAt?: Date;
|
|
85
|
+
updatedAt?: Date;
|
|
86
|
+
}
|
|
87
|
+
export declare const ScorecardCriteriaSchema: MongooseSchema<ScorecardCriteria, import("mongoose").Model<ScorecardCriteria, any, any, any, Document<unknown, any, ScorecardCriteria> & ScorecardCriteria & Required<{
|
|
88
|
+
_id: Types.ObjectId;
|
|
89
|
+
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ScorecardCriteria, Document<unknown, {}, import("mongoose").FlatRecord<ScorecardCriteria>> & import("mongoose").FlatRecord<ScorecardCriteria> & Required<{
|
|
90
|
+
_id: Types.ObjectId;
|
|
91
|
+
}>>;
|
|
92
|
+
//# sourceMappingURL=scorecard-criteria.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scorecard-criteria.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/scorecard-criteria.schema.ts"],"names":[],"mappings":"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"}
|