@talkpilot/core-db 1.3.54 → 1.3.56
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/dist/configuration/models/index.d.ts +2 -2
- package/dist/configuration/models/index.d.ts.map +1 -1
- package/dist/configuration/models/index.js +3 -1
- package/dist/configuration/models/index.js.map +1 -1
- package/dist/configuration/models/models.constants.d.ts +1 -0
- package/dist/configuration/models/models.constants.d.ts.map +1 -1
- package/dist/configuration/models/models.constants.js +2 -1
- package/dist/configuration/models/models.constants.js.map +1 -1
- package/dist/configuration/models/models.getters.d.ts +5 -0
- package/dist/configuration/models/models.getters.d.ts.map +1 -1
- package/dist/configuration/models/models.getters.js +14 -1
- package/dist/configuration/models/models.getters.js.map +1 -1
- package/dist/configuration/models/models.types.d.ts +2 -1
- package/dist/configuration/models/models.types.d.ts.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts +8 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js +9 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts +2 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js +8 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts +3 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts.map +1 -1
- package/dist/websitalk/scanResources/scanResources.constants.d.ts +9 -0
- package/dist/websitalk/scanResources/scanResources.constants.d.ts.map +1 -1
- package/dist/websitalk/scanResources/scanResources.constants.js +14 -2
- package/dist/websitalk/scanResources/scanResources.constants.js.map +1 -1
- package/dist/websitalk/scanResources/scanResources.getters.d.ts +2 -1
- package/dist/websitalk/scanResources/scanResources.getters.d.ts.map +1 -1
- package/dist/websitalk/scanResources/scanResources.getters.js +12 -1
- package/dist/websitalk/scanResources/scanResources.getters.js.map +1 -1
- package/dist/websitalk/scanResources/scanResources.types.d.ts +4 -0
- package/dist/websitalk/scanResources/scanResources.types.d.ts.map +1 -1
- package/dist/websitalk/scans/scans.types.d.ts +2 -0
- package/dist/websitalk/scans/scans.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/configuration/models/__tests__/models.getters.spec.ts +67 -0
- package/src/configuration/models/index.ts +2 -0
- package/src/configuration/models/models.constants.ts +2 -0
- package/src/configuration/models/models.getters.ts +23 -5
- package/src/configuration/models/models.types.ts +2 -1
- package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +52 -0
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +9 -0
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +20 -3
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +13 -0
- package/src/websitalk/scanResources/__tests__/scanResources.spec.ts +55 -0
- package/src/websitalk/scanResources/scanResources.constants.ts +14 -1
- package/src/websitalk/scanResources/scanResources.getters.ts +19 -0
- package/src/websitalk/scanResources/scanResources.types.ts +15 -0
- package/src/websitalk/scans/scans.types.ts +2 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MODELS_COLLECTION, MODEL_TYPES, REALTIME_MODEL_PROVIDERS, STT_MODEL_PROVIDERS, } from "./models.constants";
|
|
2
|
-
export { getModelsCollection, findModels, getModelByModelId, getModelsByProvider, getModelsByType, getAvailableModelsByType, } from "./models.getters";
|
|
1
|
+
export { MODELS_COLLECTION, MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW, MODEL_TYPES, REALTIME_MODEL_PROVIDERS, STT_MODEL_PROVIDERS, } from "./models.constants";
|
|
2
|
+
export { getModelsCollection, findModels, getModelByModelId, getModelContextWindow, getModelsByProvider, getModelsByType, getAvailableModelsByType, } from "./models.getters";
|
|
3
3
|
export type { ModelType, RealtimeModelProvider, SttModelProvider, SemanticVad, ServerVad, TurnDetection, RealtimeModelDoc, SttModelDoc, ModelDoc, } from "./models.types";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,QAAQ,GACT,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oCAAoC,EACpC,WAAW,EACX,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,QAAQ,GACT,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAvailableModelsByType = exports.getModelsByType = exports.getModelsByProvider = exports.getModelByModelId = exports.findModels = exports.getModelsCollection = exports.STT_MODEL_PROVIDERS = exports.REALTIME_MODEL_PROVIDERS = exports.MODEL_TYPES = exports.MODELS_COLLECTION = void 0;
|
|
3
|
+
exports.getAvailableModelsByType = exports.getModelsByType = exports.getModelsByProvider = exports.getModelContextWindow = exports.getModelByModelId = exports.findModels = exports.getModelsCollection = exports.STT_MODEL_PROVIDERS = exports.REALTIME_MODEL_PROVIDERS = exports.MODEL_TYPES = exports.MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW = exports.MODELS_COLLECTION = void 0;
|
|
4
4
|
var models_constants_1 = require("./models.constants");
|
|
5
5
|
Object.defineProperty(exports, "MODELS_COLLECTION", { enumerable: true, get: function () { return models_constants_1.MODELS_COLLECTION; } });
|
|
6
|
+
Object.defineProperty(exports, "MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW", { enumerable: true, get: function () { return models_constants_1.MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW; } });
|
|
6
7
|
Object.defineProperty(exports, "MODEL_TYPES", { enumerable: true, get: function () { return models_constants_1.MODEL_TYPES; } });
|
|
7
8
|
Object.defineProperty(exports, "REALTIME_MODEL_PROVIDERS", { enumerable: true, get: function () { return models_constants_1.REALTIME_MODEL_PROVIDERS; } });
|
|
8
9
|
Object.defineProperty(exports, "STT_MODEL_PROVIDERS", { enumerable: true, get: function () { return models_constants_1.STT_MODEL_PROVIDERS; } });
|
|
@@ -10,6 +11,7 @@ var models_getters_1 = require("./models.getters");
|
|
|
10
11
|
Object.defineProperty(exports, "getModelsCollection", { enumerable: true, get: function () { return models_getters_1.getModelsCollection; } });
|
|
11
12
|
Object.defineProperty(exports, "findModels", { enumerable: true, get: function () { return models_getters_1.findModels; } });
|
|
12
13
|
Object.defineProperty(exports, "getModelByModelId", { enumerable: true, get: function () { return models_getters_1.getModelByModelId; } });
|
|
14
|
+
Object.defineProperty(exports, "getModelContextWindow", { enumerable: true, get: function () { return models_getters_1.getModelContextWindow; } });
|
|
13
15
|
Object.defineProperty(exports, "getModelsByProvider", { enumerable: true, get: function () { return models_getters_1.getModelsByProvider; } });
|
|
14
16
|
Object.defineProperty(exports, "getModelsByType", { enumerable: true, get: function () { return models_getters_1.getModelsByType; } });
|
|
15
17
|
Object.defineProperty(exports, "getAvailableModelsByType", { enumerable: true, get: function () { return models_getters_1.getAvailableModelsByType; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configuration/models/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configuration/models/index.ts"],"names":[],"mappings":";;;AAAA,uDAM4B;AAL1B,qHAAA,iBAAiB,OAAA;AACjB,wIAAA,oCAAoC,OAAA;AACpC,+GAAA,WAAW,OAAA;AACX,4HAAA,wBAAwB,OAAA;AACxB,uHAAA,mBAAmB,OAAA;AAErB,mDAQ0B;AAPxB,qHAAA,mBAAmB,OAAA;AACnB,4GAAA,UAAU,OAAA;AACV,mHAAA,iBAAiB,OAAA;AACjB,uHAAA,qBAAqB,OAAA;AACrB,qHAAA,mBAAmB,OAAA;AACnB,iHAAA,eAAe,OAAA;AACf,0HAAA,wBAAwB,OAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const MODELS_COLLECTION = "models";
|
|
2
|
+
export declare const MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW = "contextWindow";
|
|
2
3
|
export declare const MODEL_TYPES: readonly ["realtime", "stt"];
|
|
3
4
|
export declare const REALTIME_MODEL_PROVIDERS: readonly ["openai", "gemini", "xai"];
|
|
4
5
|
export declare const STT_MODEL_PROVIDERS: readonly ["openai-stt", "google-stt", "deepgram-stt", "deepgram-flux", "elevenlabs-scribe", "gladia-stt"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.constants.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/models.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,eAAO,MAAM,WAAW,8BAA+B,CAAC;AAExD,eAAO,MAAM,wBAAwB,sCAAuC,CAAC;AAC7E,eAAO,MAAM,mBAAmB,2GAOtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"models.constants.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/models.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,eAAO,MAAM,oCAAoC,kBAAkB,CAAC;AAEpE,eAAO,MAAM,WAAW,8BAA+B,CAAC;AAExD,eAAO,MAAM,wBAAwB,sCAAuC,CAAC;AAC7E,eAAO,MAAM,mBAAmB,2GAOtB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STT_MODEL_PROVIDERS = exports.REALTIME_MODEL_PROVIDERS = exports.MODEL_TYPES = exports.MODELS_COLLECTION = void 0;
|
|
3
|
+
exports.STT_MODEL_PROVIDERS = exports.REALTIME_MODEL_PROVIDERS = exports.MODEL_TYPES = exports.MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW = exports.MODELS_COLLECTION = void 0;
|
|
4
4
|
exports.MODELS_COLLECTION = "models";
|
|
5
|
+
exports.MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW = "contextWindow";
|
|
5
6
|
exports.MODEL_TYPES = ["realtime", "stt"];
|
|
6
7
|
exports.REALTIME_MODEL_PROVIDERS = ["openai", "gemini", "xai"];
|
|
7
8
|
exports.STT_MODEL_PROVIDERS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.constants.js","sourceRoot":"","sources":["../../../src/configuration/models/models.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAE7B,QAAA,WAAW,GAAG,CAAC,UAAU,EAAE,KAAK,CAAU,CAAC;AAE3C,QAAA,wBAAwB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAChE,QAAA,mBAAmB,GAAG;IACjC,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,YAAY;CACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"models.constants.js","sourceRoot":"","sources":["../../../src/configuration/models/models.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAE7B,QAAA,oCAAoC,GAAG,eAAe,CAAC;AAEvD,QAAA,WAAW,GAAG,CAAC,UAAU,EAAE,KAAK,CAAU,CAAC;AAE3C,QAAA,wBAAwB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAChE,QAAA,mBAAmB,GAAG;IACjC,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,YAAY;CACJ,CAAC"}
|
|
@@ -10,6 +10,11 @@ export declare const findModels: (filter?: Filter<ModelDoc>) => Promise<ModelDoc
|
|
|
10
10
|
* @param type optional narrowing filter, since `modelId` isn't guaranteed unique across types
|
|
11
11
|
*/
|
|
12
12
|
export declare const getModelByModelId: (modelId: string, type?: ModelType) => Promise<ModelDoc | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Token context window for a model (`configDefaults.contextWindow`).
|
|
15
|
+
* `null` when the model is missing or the value is not a positive number.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getModelContextWindow: (modelId: string) => Promise<number | null>;
|
|
13
18
|
/**
|
|
14
19
|
* Get all models for a given `provider`, optionally scoped to a `type`.
|
|
15
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.getters.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/models.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"models.getters.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/models.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAO7C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,QAAO,UAAU,CAAC,QAAQ,CAEzD,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,UAAU,GACrB,SAAQ,MAAM,CAAC,QAAQ,CAAM,KAC5B,OAAO,CAAC,QAAQ,EAAE,CAEpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,OAAO,SAAS,KACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAGzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAOvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,OAAO,SAAS,KACf,OAAO,CAAC,QAAQ,EAAE,CAGpB,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,eAAe,GAAU,MAAM,SAAS,KAAG,OAAO,CAAC,QAAQ,EAAE,CAEzE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,GACnC,MAAM,SAAS,KACd,OAAO,CAAC,QAAQ,EAAE,CAEpB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAvailableModelsByType = exports.getModelsByType = exports.getModelsByProvider = exports.getModelByModelId = exports.findModels = exports.getModelsCollection = void 0;
|
|
3
|
+
exports.getAvailableModelsByType = exports.getModelsByType = exports.getModelsByProvider = exports.getModelContextWindow = exports.getModelByModelId = exports.findModels = exports.getModelsCollection = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const models_constants_1 = require("./models.constants");
|
|
6
6
|
/** Raw typed handle to the `models` collection. */
|
|
@@ -23,6 +23,19 @@ const getModelByModelId = async (modelId, type) => {
|
|
|
23
23
|
return await (0, exports.getModelsCollection)().findOne(filter);
|
|
24
24
|
};
|
|
25
25
|
exports.getModelByModelId = getModelByModelId;
|
|
26
|
+
/**
|
|
27
|
+
* Token context window for a model (`configDefaults.contextWindow`).
|
|
28
|
+
* `null` when the model is missing or the value is not a positive number.
|
|
29
|
+
*/
|
|
30
|
+
const getModelContextWindow = async (modelId) => {
|
|
31
|
+
const doc = await (0, exports.getModelByModelId)(modelId);
|
|
32
|
+
const value = doc?.configDefaults?.[models_constants_1.MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW];
|
|
33
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return Math.floor(value);
|
|
37
|
+
};
|
|
38
|
+
exports.getModelContextWindow = getModelContextWindow;
|
|
26
39
|
/**
|
|
27
40
|
* Get all models for a given `provider`, optionally scoped to a `type`.
|
|
28
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.getters.js","sourceRoot":"","sources":["../../../src/configuration/models/models.getters.ts"],"names":[],"mappings":";;;AAEA,oCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"models.getters.js","sourceRoot":"","sources":["../../../src/configuration/models/models.getters.ts"],"names":[],"mappings":";;;AAEA,oCAAiC;AACjC,yDAG4B;AAG5B,mDAAmD;AAC5C,MAAM,mBAAmB,GAAG,GAAyB,EAAE;IAC5D,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAW,oCAAiB,CAAC,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEF,0CAA0C;AACnC,MAAM,UAAU,GAAG,KAAK,EAC7B,SAA2B,EAAE,EACR,EAAE;IACvB,OAAO,MAAM,IAAA,2BAAmB,GAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEF;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAe,EACf,IAAgB,EACU,EAAE;IAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAqB,CAAC;IAC5E,OAAO,MAAM,IAAA,2BAAmB,GAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEF;;;GAGG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAAe,EACS,EAAE;IAC1B,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,GAAG,EAAE,cAAc,EAAE,CAAC,uDAAoC,CAAC,CAAC;IAC1E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,QAAgB,EAChB,IAAgB,EACK,EAAE;IACvB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAqB,CAAC;IAC9E,OAAO,MAAM,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEF,wCAAwC;AACjC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAe,EAAuB,EAAE;IAC5E,OAAO,MAAM,IAAA,kBAAU,EAAC,EAAE,IAAI,EAAsB,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEF,kEAAkE;AAC3D,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAe,EACM,EAAE;IACvB,OAAO,MAAM,IAAA,kBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAsB,CAAC,CAAC;AACzE,CAAC,CAAC;AAJW,QAAA,wBAAwB,4BAInC"}
|
|
@@ -58,7 +58,8 @@ export type SttModelDoc = BaseModelDoc & {
|
|
|
58
58
|
* - `description?` — display description
|
|
59
59
|
* - `available` — whether the model should be offered/selectable right now
|
|
60
60
|
* - `configDefaults?` — free-form provider-specific config, e.g. the literal vendor
|
|
61
|
-
* model string, VAD tuning, language, barge-in timings
|
|
61
|
+
* model string, VAD tuning, language, barge-in timings, `contextWindow` (token
|
|
62
|
+
* budget) — shape varies per `provider`
|
|
62
63
|
* - `createdAt` / `updatedAt`
|
|
63
64
|
*
|
|
64
65
|
* Type-specific fields: see {@link RealtimeModelDoc}, {@link SttModelDoc}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.types.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/models.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpD,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,aAAa,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"models.types.d.ts","sourceRoot":"","sources":["../../../src/configuration/models/models.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpD,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,QAAQ,CAAC;IACd,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,aAAa,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,WAAW,CAAC"}
|
|
@@ -12,4 +12,12 @@ export declare const KNOWLEDGE_FILE_TYPES: {
|
|
|
12
12
|
export declare const KNOWLEDGE_CONTENT_TYPES: {
|
|
13
13
|
readonly PDF: "application/pdf";
|
|
14
14
|
};
|
|
15
|
+
export declare const KNOWLEDGE_DOCUMENT_READY_PROJECTION: {
|
|
16
|
+
readonly clientId: 1;
|
|
17
|
+
readonly filename: 1;
|
|
18
|
+
readonly markdownStoragePath: 1;
|
|
19
|
+
readonly charCount: 1;
|
|
20
|
+
readonly totalTokens: 1;
|
|
21
|
+
readonly status: 1;
|
|
22
|
+
};
|
|
15
23
|
//# sourceMappingURL=knowledgeDocuments.constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;;;;;CAM9B,CAAC;AAEX,eAAO,MAAM,oBAAoB;;CAEvB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;CAE1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;;;;;CAM9B,CAAC;AAEX,eAAO,MAAM,oBAAoB;;CAEvB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;CAE1B,CAAC;AAEX,eAAO,MAAM,mCAAmC;;;;;;;CAOtC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KNOWLEDGE_CONTENT_TYPES = exports.KNOWLEDGE_FILE_TYPES = exports.KNOWLEDGE_DOCUMENT_STATUSES = exports.KNOWLEDGE_DOCUMENTS_COLLECTION = void 0;
|
|
3
|
+
exports.KNOWLEDGE_DOCUMENT_READY_PROJECTION = exports.KNOWLEDGE_CONTENT_TYPES = exports.KNOWLEDGE_FILE_TYPES = exports.KNOWLEDGE_DOCUMENT_STATUSES = exports.KNOWLEDGE_DOCUMENTS_COLLECTION = void 0;
|
|
4
4
|
exports.KNOWLEDGE_DOCUMENTS_COLLECTION = "knowledgeDocuments";
|
|
5
5
|
exports.KNOWLEDGE_DOCUMENT_STATUSES = {
|
|
6
6
|
UPLOADING: "UPLOADING",
|
|
@@ -15,4 +15,12 @@ exports.KNOWLEDGE_FILE_TYPES = {
|
|
|
15
15
|
exports.KNOWLEDGE_CONTENT_TYPES = {
|
|
16
16
|
PDF: "application/pdf",
|
|
17
17
|
};
|
|
18
|
+
exports.KNOWLEDGE_DOCUMENT_READY_PROJECTION = {
|
|
19
|
+
clientId: 1,
|
|
20
|
+
filename: 1,
|
|
21
|
+
markdownStoragePath: 1,
|
|
22
|
+
charCount: 1,
|
|
23
|
+
totalTokens: 1,
|
|
24
|
+
status: 1,
|
|
25
|
+
};
|
|
18
26
|
//# sourceMappingURL=knowledgeDocuments.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.constants.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AAEtD,QAAA,2BAA2B,GAAG;IACzC,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,KAAK;CACF,CAAC;AAEE,QAAA,uBAAuB,GAAG;IACrC,GAAG,EAAE,iBAAiB;CACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.constants.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AAEtD,QAAA,2BAA2B,GAAG;IACzC,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,KAAK;CACF,CAAC;AAEE,QAAA,uBAAuB,GAAG;IACrC,GAAG,EAAE,iBAAiB;CACd,CAAC;AAEE,QAAA,mCAAmC,GAAG;IACjD,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,mBAAmB,EAAE,CAAC;IACtB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;CACD,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Collection, ObjectId as MongoObjectId } from "mongodb";
|
|
2
|
-
import type { CreateKnowledgeDocumentInput, KnowledgeDocument, KnowledgeDocumentDoc, UpdateKnowledgeDocumentInput } from "./knowledgeDocuments.types";
|
|
2
|
+
import type { CreateKnowledgeDocumentInput, KnowledgeDocument, KnowledgeDocumentDoc, KnowledgeDocumentReadyProjection, UpdateKnowledgeDocumentInput } from "./knowledgeDocuments.types";
|
|
3
3
|
export declare const getKnowledgeDocumentsCollection: () => Collection<KnowledgeDocument>;
|
|
4
4
|
export declare const createKnowledgeDocument: (input: CreateKnowledgeDocumentInput) => Promise<MongoObjectId>;
|
|
5
5
|
export declare const getKnowledgeDocumentById: (id: string) => Promise<KnowledgeDocumentDoc | null>;
|
|
6
6
|
export declare const listKnowledgeDocumentsByClientId: (clientId: string) => Promise<KnowledgeDocumentDoc[]>;
|
|
7
7
|
export declare const listReadyKnowledgeDocumentIdsByClientId: (clientId: string) => Promise<string[]>;
|
|
8
|
+
export declare const listReadyKnowledgeDocumentsByClientId: (clientId: string) => Promise<KnowledgeDocumentReadyProjection[]>;
|
|
8
9
|
export declare const updateKnowledgeDocument: (id: string, updates: UpdateKnowledgeDocumentInput) => Promise<KnowledgeDocumentDoc | null>;
|
|
9
10
|
export declare const deleteKnowledgeDocument: (id: string) => Promise<boolean>;
|
|
10
11
|
//# sourceMappingURL=knowledgeDocuments.getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAOhE,OAAO,KAAK,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,gCAAgC,EAChC,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,+BAA+B,QACtC,UAAU,CAAC,iBAAiB,CAI/B,CAAC;AAEJ,eAAO,MAAM,uBAAuB,GAClC,OAAO,4BAA4B,KAClC,OAAO,CAAC,aAAa,CAYvB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,IAAI,MAAM,KACT,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAErC,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,UAAU,MAAM,KACf,OAAO,CAAC,oBAAoB,EAAE,CAKhC,CAAC;AAEF,eAAO,MAAM,uCAAuC,GAClD,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,EAAE,CASlB,CAAC;AAEF,eAAO,MAAM,qCAAqC,GAChD,UAAU,MAAM,KACf,OAAO,CAAC,gCAAgC,EAAE,CAQ5C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,IAAI,MAAM,EACV,SAAS,4BAA4B,KACpC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAMrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAKzE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteKnowledgeDocument = exports.updateKnowledgeDocument = exports.listReadyKnowledgeDocumentIdsByClientId = exports.listKnowledgeDocumentsByClientId = exports.getKnowledgeDocumentById = exports.createKnowledgeDocument = exports.getKnowledgeDocumentsCollection = void 0;
|
|
3
|
+
exports.deleteKnowledgeDocument = exports.updateKnowledgeDocument = exports.listReadyKnowledgeDocumentsByClientId = exports.listReadyKnowledgeDocumentIdsByClientId = exports.listKnowledgeDocumentsByClientId = exports.getKnowledgeDocumentById = exports.createKnowledgeDocument = exports.getKnowledgeDocumentsCollection = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const knowledgeDocuments_constants_1 = require("./knowledgeDocuments.constants");
|
|
6
6
|
const getKnowledgeDocumentsCollection = () => {
|
|
@@ -40,6 +40,13 @@ const listReadyKnowledgeDocumentIdsByClientId = async (clientId) => {
|
|
|
40
40
|
return docs.map((doc) => doc._id.toString());
|
|
41
41
|
};
|
|
42
42
|
exports.listReadyKnowledgeDocumentIdsByClientId = listReadyKnowledgeDocumentIdsByClientId;
|
|
43
|
+
const listReadyKnowledgeDocumentsByClientId = async (clientId) => {
|
|
44
|
+
return (0, exports.getKnowledgeDocumentsCollection)()
|
|
45
|
+
.find({ clientId, status: knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.READY }, { projection: knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_READY_PROJECTION })
|
|
46
|
+
.sort({ createdAt: -1 })
|
|
47
|
+
.toArray();
|
|
48
|
+
};
|
|
49
|
+
exports.listReadyKnowledgeDocumentsByClientId = listReadyKnowledgeDocumentsByClientId;
|
|
43
50
|
const updateKnowledgeDocument = async (id, updates) => {
|
|
44
51
|
return (0, exports.getKnowledgeDocumentsCollection)().findOneAndUpdate({ _id: new index_1.ObjectId(id) }, { $set: { ...updates, updatedAt: new Date() } }, { returnDocument: "after" });
|
|
45
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.getters.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.getters.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export type KnowledgeDocument = {
|
|
|
14
14
|
pageCount?: number;
|
|
15
15
|
pagesExtracted?: number;
|
|
16
16
|
charCount?: number;
|
|
17
|
+
totalTokens?: number;
|
|
17
18
|
contentHash?: string;
|
|
18
19
|
status: KnowledgeDocumentStatus;
|
|
19
20
|
errorMessage?: string;
|
|
@@ -27,5 +28,6 @@ export type CreateKnowledgeDocumentInput = Omit<KnowledgeDocument, "createdAt" |
|
|
|
27
28
|
progressPercent?: number;
|
|
28
29
|
_id?: MongoObjectId;
|
|
29
30
|
};
|
|
30
|
-
export type UpdateKnowledgeDocumentInput = Partial<Pick<KnowledgeDocument, "storagePath" | "markdownStoragePath" | "byteSize" | "pageCount" | "pagesExtracted" | "charCount" | "contentHash" | "status" | "errorMessage" | "progressPercent">>;
|
|
31
|
+
export type UpdateKnowledgeDocumentInput = Partial<Pick<KnowledgeDocument, "storagePath" | "markdownStoragePath" | "byteSize" | "pageCount" | "pagesExtracted" | "charCount" | "totalTokens" | "contentHash" | "status" | "errorMessage" | "progressPercent">>;
|
|
32
|
+
export type KnowledgeDocumentReadyProjection = Pick<KnowledgeDocumentDoc, "_id" | "clientId" | "filename" | "markdownStoragePath" | "charCount" | "totalTokens" | "status">;
|
|
31
33
|
//# sourceMappingURL=knowledgeDocuments.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,iBAAiB,EACjB,WAAW,GAAG,WAAW,GAAG,iBAAiB,GAAG,QAAQ,CACzD,GAAG;IACF,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,IAAI,CACF,iBAAiB,EACf,aAAa,GACb,qBAAqB,GACrB,UAAU,GACV,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,QAAQ,GACR,cAAc,GACd,iBAAiB,CACpB,CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,iBAAiB,EACjB,WAAW,GAAG,WAAW,GAAG,iBAAiB,GAAG,QAAQ,CACzD,GAAG;IACF,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,IAAI,CACF,iBAAiB,EACf,aAAa,GACb,qBAAqB,GACrB,UAAU,GACV,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,aAAa,GACb,QAAQ,GACR,cAAc,GACd,iBAAiB,CACpB,CACF,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,oBAAoB,EAClB,KAAK,GACL,UAAU,GACV,UAAU,GACV,qBAAqB,GACrB,WAAW,GACX,aAAa,GACb,QAAQ,CACX,CAAC"}
|
|
@@ -33,6 +33,15 @@ export declare const SCAN_RESOURCE_BOARD_PROJECTION: {
|
|
|
33
33
|
readonly updatedAt: 1;
|
|
34
34
|
readonly sourceType: 1;
|
|
35
35
|
};
|
|
36
|
+
export declare const SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION: {
|
|
37
|
+
readonly scanId: 1;
|
|
38
|
+
readonly url: 1;
|
|
39
|
+
readonly title: 1;
|
|
40
|
+
readonly context: 1;
|
|
41
|
+
readonly summaryTokens: 1;
|
|
42
|
+
readonly unsummarized: 1;
|
|
43
|
+
readonly status: 1;
|
|
44
|
+
};
|
|
36
45
|
export declare const DEFAULT_PAGE_LIMIT = 4;
|
|
37
46
|
export declare const MAX_PAGE_LIMIT = 50;
|
|
38
47
|
//# sourceMappingURL=scanResources.constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanResources.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"scanResources.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;CAiBxB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;CAYjC,CAAC;AAEX,eAAO,MAAM,qCAAqC;;;;;;;;CAQxC,CAAC;AAEX,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,cAAc,KAAK,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAX_PAGE_LIMIT = exports.DEFAULT_PAGE_LIMIT = exports.SCAN_RESOURCE_BOARD_PROJECTION = exports.BOARD_COLUMN_STATUSES = exports.URL_TASK_STATUSES = exports.SCAN_RESOURCES_COLLECTION = void 0;
|
|
3
|
+
exports.MAX_PAGE_LIMIT = exports.DEFAULT_PAGE_LIMIT = exports.SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION = exports.SCAN_RESOURCE_BOARD_PROJECTION = exports.BOARD_COLUMN_STATUSES = exports.URL_TASK_STATUSES = exports.SCAN_RESOURCES_COLLECTION = void 0;
|
|
4
4
|
exports.SCAN_RESOURCES_COLLECTION = "scanResources";
|
|
5
5
|
exports.URL_TASK_STATUSES = {
|
|
6
6
|
URL_PENDING: "URL_PENDING",
|
|
@@ -18,7 +18,10 @@ exports.BOARD_COLUMN_STATUSES = {
|
|
|
18
18
|
PENDING: [exports.URL_TASK_STATUSES.URL_PENDING],
|
|
19
19
|
SCANNING: [exports.URL_TASK_STATUSES.URL_SCANNING],
|
|
20
20
|
READY_TO_PROCESS: [exports.URL_TASK_STATUSES.URL_READY_TO_PROCESS],
|
|
21
|
-
CHUNKING: [
|
|
21
|
+
CHUNKING: [
|
|
22
|
+
exports.URL_TASK_STATUSES.URL_CHUNKING,
|
|
23
|
+
exports.URL_TASK_STATUSES.URL_PENDING_CHUNKS,
|
|
24
|
+
],
|
|
22
25
|
PROCESSING: [exports.URL_TASK_STATUSES.URL_EMBEDDING],
|
|
23
26
|
COMPLETED: [
|
|
24
27
|
exports.URL_TASK_STATUSES.URL_COMPLETED,
|
|
@@ -42,6 +45,15 @@ exports.SCAN_RESOURCE_BOARD_PROJECTION = {
|
|
|
42
45
|
updatedAt: 1,
|
|
43
46
|
sourceType: 1,
|
|
44
47
|
};
|
|
48
|
+
exports.SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION = {
|
|
49
|
+
scanId: 1,
|
|
50
|
+
url: 1,
|
|
51
|
+
title: 1,
|
|
52
|
+
context: 1,
|
|
53
|
+
summaryTokens: 1,
|
|
54
|
+
unsummarized: 1,
|
|
55
|
+
status: 1,
|
|
56
|
+
};
|
|
45
57
|
exports.DEFAULT_PAGE_LIMIT = 4;
|
|
46
58
|
exports.MAX_PAGE_LIMIT = 50;
|
|
47
59
|
//# sourceMappingURL=scanResources.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanResources.constants.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAE5C,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,qBAAqB,EAAE,uBAAuB;CACtC,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE,CAAC,yBAAiB,CAAC,WAAW,CAAC;IACxC,QAAQ,EAAE,CAAC,yBAAiB,CAAC,YAAY,CAAC;IAC1C,gBAAgB,EAAE,CAAC,yBAAiB,CAAC,oBAAoB,CAAC;IAC1D,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"scanResources.constants.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAE5C,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,qBAAqB,EAAE,uBAAuB;CACtC,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE,CAAC,yBAAiB,CAAC,WAAW,CAAC;IACxC,QAAQ,EAAE,CAAC,yBAAiB,CAAC,YAAY,CAAC;IAC1C,gBAAgB,EAAE,CAAC,yBAAiB,CAAC,oBAAoB,CAAC;IAC1D,QAAQ,EAAE;QACR,yBAAiB,CAAC,YAAY;QAC9B,yBAAiB,CAAC,kBAAkB;KACrC;IACD,UAAU,EAAE,CAAC,yBAAiB,CAAC,aAAa,CAAC;IAC7C,SAAS,EAAE;QACT,yBAAiB,CAAC,aAAa;QAC/B,yBAAiB,CAAC,qBAAqB;KACxC;IACD,MAAM,EAAE;QACN,yBAAiB,CAAC,qBAAqB;QACvC,yBAAiB,CAAC,UAAU;KAC7B;CACO,CAAC;AAEE,QAAA,8BAA8B,GAAG;IAC5C,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,CAAC;IACb,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;CACL,CAAC;AAEE,QAAA,qCAAqC,GAAG;IACnD,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,CAAC;CACD,CAAC;AAEE,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,cAAc,GAAG,EAAE,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Collection } from "mongodb";
|
|
2
|
-
import type { PagedResult, ScanPagesQuery, ScanResource, ScanResourceBoardProjection, ScanResourceDoc, UrlTaskStatus } from "./scanResources.types";
|
|
2
|
+
import type { PagedResult, ScanPagesQuery, ScanResource, ScanResourceBoardProjection, ScanResourceDoc, ScanResourcePageSummary, UrlTaskStatus } from "./scanResources.types";
|
|
3
3
|
export declare const getScanResourcesCollection: () => Collection<ScanResource>;
|
|
4
4
|
export declare const getScanKpiCounts: (scanId: string) => Promise<Partial<Record<UrlTaskStatus, number>>>;
|
|
5
5
|
export declare const getScanResourceCountsByScanIds: (scanIds: string[]) => Promise<Record<string, number>>;
|
|
6
|
+
export declare const listPageSummariesByScanIds: (scanIds: string[]) => Promise<ScanResourcePageSummary[]>;
|
|
6
7
|
export declare const getScanPages: (query: ScanPagesQuery) => Promise<PagedResult<ScanResourceBoardProjection>>;
|
|
7
8
|
export declare const getScanResourceById: (scanId: string, pageId: string) => Promise<ScanResourceDoc | null>;
|
|
8
9
|
export declare const deleteScanResourcesByScanId: (scanId: string) => Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanResources.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scanResources.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,SAAS,CAAC;AAUvD,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,2BAA2B,EAC3B,eAAe,EACf,uBAAuB,EACvB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAQ/B,eAAO,MAAM,0BAA0B,QAAO,UAAU,CAAC,YAAY,CACR,CAAC;AAE9D,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAYhD,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,uBAAuB,EAAE,CAYnC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,OAAO,cAAc,KACpB,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAoClD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,QAAQ,MAAM,KACb,OAAO,CAAC,eAAe,GAAG,IAAI,CAC4C,CAAC;AAE9E,eAAO,MAAM,2BAA2B,GACtC,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,CAGhB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteScanResourcesByScanId = exports.getScanResourceById = exports.getScanPages = exports.getScanResourceCountsByScanIds = exports.getScanKpiCounts = exports.getScanResourcesCollection = void 0;
|
|
3
|
+
exports.deleteScanResourcesByScanId = exports.getScanResourceById = exports.getScanPages = exports.listPageSummariesByScanIds = exports.getScanResourceCountsByScanIds = exports.getScanKpiCounts = exports.getScanResourcesCollection = void 0;
|
|
4
4
|
const mongodb_1 = require("mongodb");
|
|
5
5
|
const index_1 = require("../index");
|
|
6
6
|
const scanResources_constants_1 = require("./scanResources.constants");
|
|
@@ -32,6 +32,17 @@ const getScanResourceCountsByScanIds = async (scanIds) => {
|
|
|
32
32
|
return Object.fromEntries(rows.map((row) => [row._id, row.count]));
|
|
33
33
|
};
|
|
34
34
|
exports.getScanResourceCountsByScanIds = getScanResourceCountsByScanIds;
|
|
35
|
+
const listPageSummariesByScanIds = async (scanIds) => {
|
|
36
|
+
if (scanIds.length === 0)
|
|
37
|
+
return [];
|
|
38
|
+
return (0, exports.getScanResourcesCollection)()
|
|
39
|
+
.find({
|
|
40
|
+
scanId: { $in: scanIds },
|
|
41
|
+
status: scanResources_constants_1.URL_TASK_STATUSES.URL_COMPLETED,
|
|
42
|
+
}, { projection: scanResources_constants_1.SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION })
|
|
43
|
+
.toArray();
|
|
44
|
+
};
|
|
45
|
+
exports.listPageSummariesByScanIds = listPageSummariesByScanIds;
|
|
35
46
|
const getScanPages = async (query) => {
|
|
36
47
|
const limit = Math.min(query.limit ?? scanResources_constants_1.DEFAULT_PAGE_LIMIT, scanResources_constants_1.MAX_PAGE_LIMIT);
|
|
37
48
|
const filter = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanResources.getters.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":";;;AAAA,qCAAuD;AACvD,oCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"scanResources.getters.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@ export type ScanResource = {
|
|
|
20
20
|
language?: string | null;
|
|
21
21
|
sourceType?: string | null;
|
|
22
22
|
context?: string | null;
|
|
23
|
+
rawContext?: string | null;
|
|
24
|
+
summaryTokens?: number | null;
|
|
25
|
+
unsummarized?: boolean | null;
|
|
23
26
|
contentHash?: string | null;
|
|
24
27
|
duplicateOfTaskId?: string | null;
|
|
25
28
|
breadcrumbs?: unknown;
|
|
@@ -45,6 +48,7 @@ export type ScanResource = {
|
|
|
45
48
|
};
|
|
46
49
|
export type ScanResourceDoc = WithId<ScanResource>;
|
|
47
50
|
export type ScanResourceBoardProjection = Pick<ScanResourceDoc, "_id" | "url" | "title" | "status" | "statusEnteredAt" | "retryCount" | "processRetryCount" | "globalResurrections" | "noRetry" | "errorMessage" | "updatedAt" | "sourceType">;
|
|
51
|
+
export type ScanResourcePageSummary = Pick<ScanResourceDoc, "_id" | "scanId" | "url" | "title" | "context" | "summaryTokens" | "unsummarized" | "status">;
|
|
48
52
|
export type ScanPagesQuery = {
|
|
49
53
|
scanId: string;
|
|
50
54
|
column: BoardColumn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanResources.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanResources.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scans.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAKhB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"scans.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAKhB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ObjectId } from "mongodb";
|
|
2
|
+
import { MODELS_COLLECTION } from "../models.constants";
|
|
3
|
+
import {
|
|
4
|
+
getModelsCollection,
|
|
5
|
+
getModelContextWindow,
|
|
6
|
+
} from "../models.getters";
|
|
7
|
+
import type { RealtimeModelDoc } from "../models.types";
|
|
8
|
+
|
|
9
|
+
function realtimeModel(
|
|
10
|
+
overrides: Partial<RealtimeModelDoc> & Pick<RealtimeModelDoc, "modelId">,
|
|
11
|
+
): RealtimeModelDoc {
|
|
12
|
+
const now = new Date();
|
|
13
|
+
return {
|
|
14
|
+
_id: new ObjectId(),
|
|
15
|
+
name: overrides.modelId,
|
|
16
|
+
type: "realtime",
|
|
17
|
+
provider: "openai",
|
|
18
|
+
available: true,
|
|
19
|
+
createdAt: now,
|
|
20
|
+
updatedAt: now,
|
|
21
|
+
...overrides,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
describe("getModelContextWindow", () => {
|
|
26
|
+
it("returns configDefaults.contextWindow for the model", async () => {
|
|
27
|
+
await getModelsCollection().insertOne(
|
|
28
|
+
realtimeModel({
|
|
29
|
+
modelId: "gpt-realtime",
|
|
30
|
+
configDefaults: { contextWindow: 32_000 },
|
|
31
|
+
}),
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
await expect(getModelContextWindow("gpt-realtime")).resolves.toBe(32_000);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("returns null when the model is missing", async () => {
|
|
38
|
+
await expect(getModelContextWindow("missing-model")).resolves.toBeNull();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("returns null when contextWindow is missing or not a positive number", async () => {
|
|
42
|
+
await getModelsCollection().insertMany([
|
|
43
|
+
realtimeModel({
|
|
44
|
+
modelId: "no-window",
|
|
45
|
+
configDefaults: {},
|
|
46
|
+
}),
|
|
47
|
+
realtimeModel({
|
|
48
|
+
modelId: "zero-window",
|
|
49
|
+
configDefaults: { contextWindow: 0 },
|
|
50
|
+
}),
|
|
51
|
+
realtimeModel({
|
|
52
|
+
modelId: "string-window",
|
|
53
|
+
configDefaults: { contextWindow: "64000" },
|
|
54
|
+
}),
|
|
55
|
+
]);
|
|
56
|
+
|
|
57
|
+
await expect(getModelContextWindow("no-window")).resolves.toBeNull();
|
|
58
|
+
await expect(getModelContextWindow("zero-window")).resolves.toBeNull();
|
|
59
|
+
await expect(getModelContextWindow("string-window")).resolves.toBeNull();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
describe("models collection", () => {
|
|
64
|
+
it(`uses the "${MODELS_COLLECTION}" collection`, () => {
|
|
65
|
+
expect(getModelsCollection().collectionName).toBe(MODELS_COLLECTION);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export {
|
|
2
2
|
MODELS_COLLECTION,
|
|
3
|
+
MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW,
|
|
3
4
|
MODEL_TYPES,
|
|
4
5
|
REALTIME_MODEL_PROVIDERS,
|
|
5
6
|
STT_MODEL_PROVIDERS,
|
|
@@ -8,6 +9,7 @@ export {
|
|
|
8
9
|
getModelsCollection,
|
|
9
10
|
findModels,
|
|
10
11
|
getModelByModelId,
|
|
12
|
+
getModelContextWindow,
|
|
11
13
|
getModelsByProvider,
|
|
12
14
|
getModelsByType,
|
|
13
15
|
getAvailableModelsByType,
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Collection, Filter } from "mongodb";
|
|
2
2
|
|
|
3
3
|
import { getDb } from "../index";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
MODELS_COLLECTION,
|
|
6
|
+
MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW,
|
|
7
|
+
} from "./models.constants";
|
|
5
8
|
import { ModelDoc, ModelType } from "./models.types";
|
|
6
9
|
|
|
7
10
|
/** Raw typed handle to the `models` collection. */
|
|
@@ -11,7 +14,7 @@ export const getModelsCollection = (): Collection<ModelDoc> => {
|
|
|
11
14
|
|
|
12
15
|
/** Find models by an arbitrary filter. */
|
|
13
16
|
export const findModels = async (
|
|
14
|
-
filter: Filter<ModelDoc> = {}
|
|
17
|
+
filter: Filter<ModelDoc> = {},
|
|
15
18
|
): Promise<ModelDoc[]> => {
|
|
16
19
|
return await getModelsCollection().find(filter).toArray();
|
|
17
20
|
};
|
|
@@ -23,18 +26,33 @@ export const findModels = async (
|
|
|
23
26
|
*/
|
|
24
27
|
export const getModelByModelId = async (
|
|
25
28
|
modelId: string,
|
|
26
|
-
type?: ModelType
|
|
29
|
+
type?: ModelType,
|
|
27
30
|
): Promise<ModelDoc | null> => {
|
|
28
31
|
const filter = (type ? { modelId, type } : { modelId }) as Filter<ModelDoc>;
|
|
29
32
|
return await getModelsCollection().findOne(filter);
|
|
30
33
|
};
|
|
31
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Token context window for a model (`configDefaults.contextWindow`).
|
|
37
|
+
* `null` when the model is missing or the value is not a positive number.
|
|
38
|
+
*/
|
|
39
|
+
export const getModelContextWindow = async (
|
|
40
|
+
modelId: string,
|
|
41
|
+
): Promise<number | null> => {
|
|
42
|
+
const doc = await getModelByModelId(modelId);
|
|
43
|
+
const value = doc?.configDefaults?.[MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW];
|
|
44
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
return Math.floor(value);
|
|
48
|
+
};
|
|
49
|
+
|
|
32
50
|
/**
|
|
33
51
|
* Get all models for a given `provider`, optionally scoped to a `type`.
|
|
34
52
|
*/
|
|
35
53
|
export const getModelsByProvider = async (
|
|
36
54
|
provider: string,
|
|
37
|
-
type?: ModelType
|
|
55
|
+
type?: ModelType,
|
|
38
56
|
): Promise<ModelDoc[]> => {
|
|
39
57
|
const filter = (type ? { provider, type } : { provider }) as Filter<ModelDoc>;
|
|
40
58
|
return await findModels(filter);
|
|
@@ -47,7 +65,7 @@ export const getModelsByType = async (type: ModelType): Promise<ModelDoc[]> => {
|
|
|
47
65
|
|
|
48
66
|
/** Get all models of a given `type` where `available` is true. */
|
|
49
67
|
export const getAvailableModelsByType = async (
|
|
50
|
-
type: ModelType
|
|
68
|
+
type: ModelType,
|
|
51
69
|
): Promise<ModelDoc[]> => {
|
|
52
70
|
return await findModels({ type, available: true } as Filter<ModelDoc>);
|
|
53
71
|
};
|
|
@@ -71,7 +71,8 @@ export type SttModelDoc = BaseModelDoc & {
|
|
|
71
71
|
* - `description?` — display description
|
|
72
72
|
* - `available` — whether the model should be offered/selectable right now
|
|
73
73
|
* - `configDefaults?` — free-form provider-specific config, e.g. the literal vendor
|
|
74
|
-
* model string, VAD tuning, language, barge-in timings
|
|
74
|
+
* model string, VAD tuning, language, barge-in timings, `contextWindow` (token
|
|
75
|
+
* budget) — shape varies per `provider`
|
|
75
76
|
* - `createdAt` / `updatedAt`
|
|
76
77
|
*
|
|
77
78
|
* Type-specific fields: see {@link RealtimeModelDoc}, {@link SttModelDoc}.
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
getKnowledgeDocumentsCollection,
|
|
11
11
|
listKnowledgeDocumentsByClientId,
|
|
12
12
|
listReadyKnowledgeDocumentIdsByClientId,
|
|
13
|
+
listReadyKnowledgeDocumentsByClientId,
|
|
13
14
|
updateKnowledgeDocument,
|
|
14
15
|
} from "../knowledgeDocuments.getters";
|
|
15
16
|
import { createKnowledgeDocumentFixture } from "../../../test-utils/factories/websitalk/knowledgeDocuments";
|
|
@@ -128,6 +129,57 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
128
129
|
});
|
|
129
130
|
});
|
|
130
131
|
|
|
132
|
+
describe("listReadyKnowledgeDocumentsByClientId", () => {
|
|
133
|
+
it("should return only READY documents sorted by createdAt descending", async () => {
|
|
134
|
+
await getKnowledgeDocumentsCollection().insertMany([
|
|
135
|
+
createKnowledgeDocumentFixture({
|
|
136
|
+
clientId,
|
|
137
|
+
filename: "older.pdf",
|
|
138
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
139
|
+
markdownStoragePath: "path/older.md",
|
|
140
|
+
charCount: 100,
|
|
141
|
+
totalTokens: 20,
|
|
142
|
+
createdAt: new Date("2024-01-01"),
|
|
143
|
+
updatedAt: new Date("2024-01-01"),
|
|
144
|
+
}),
|
|
145
|
+
createKnowledgeDocumentFixture({
|
|
146
|
+
clientId,
|
|
147
|
+
filename: "newer.pdf",
|
|
148
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
149
|
+
markdownStoragePath: "path/newer.md",
|
|
150
|
+
charCount: 200,
|
|
151
|
+
totalTokens: 40,
|
|
152
|
+
createdAt: new Date("2024-06-01"),
|
|
153
|
+
updatedAt: new Date("2024-06-01"),
|
|
154
|
+
}),
|
|
155
|
+
createKnowledgeDocumentFixture({
|
|
156
|
+
clientId,
|
|
157
|
+
filename: "processing.pdf",
|
|
158
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.PROCESSING,
|
|
159
|
+
}),
|
|
160
|
+
createKnowledgeDocumentFixture({
|
|
161
|
+
clientId: "other",
|
|
162
|
+
filename: "other.pdf",
|
|
163
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
164
|
+
}),
|
|
165
|
+
]);
|
|
166
|
+
|
|
167
|
+
const docs = await listReadyKnowledgeDocumentsByClientId(clientId);
|
|
168
|
+
expect(docs.map((doc) => doc.filename)).toEqual([
|
|
169
|
+
"newer.pdf",
|
|
170
|
+
"older.pdf",
|
|
171
|
+
]);
|
|
172
|
+
expect(docs[0]).toMatchObject({
|
|
173
|
+
clientId,
|
|
174
|
+
filename: "newer.pdf",
|
|
175
|
+
markdownStoragePath: "path/newer.md",
|
|
176
|
+
charCount: 200,
|
|
177
|
+
totalTokens: 40,
|
|
178
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
131
183
|
describe("updateKnowledgeDocument", () => {
|
|
132
184
|
it("should update status and progress", async () => {
|
|
133
185
|
const id = await createKnowledgeDocument({
|
|
@@ -15,3 +15,12 @@ export const KNOWLEDGE_FILE_TYPES = {
|
|
|
15
15
|
export const KNOWLEDGE_CONTENT_TYPES = {
|
|
16
16
|
PDF: "application/pdf",
|
|
17
17
|
} as const;
|
|
18
|
+
|
|
19
|
+
export const KNOWLEDGE_DOCUMENT_READY_PROJECTION = {
|
|
20
|
+
clientId: 1,
|
|
21
|
+
filename: 1,
|
|
22
|
+
markdownStoragePath: 1,
|
|
23
|
+
charCount: 1,
|
|
24
|
+
totalTokens: 1,
|
|
25
|
+
status: 1,
|
|
26
|
+
} as const;
|
|
@@ -2,18 +2,23 @@ import { Collection, ObjectId as MongoObjectId } from "mongodb";
|
|
|
2
2
|
import { getDb, ObjectId } from "../index";
|
|
3
3
|
import {
|
|
4
4
|
KNOWLEDGE_DOCUMENTS_COLLECTION,
|
|
5
|
+
KNOWLEDGE_DOCUMENT_READY_PROJECTION,
|
|
5
6
|
KNOWLEDGE_DOCUMENT_STATUSES,
|
|
6
7
|
} from "./knowledgeDocuments.constants";
|
|
7
8
|
import type {
|
|
8
9
|
CreateKnowledgeDocumentInput,
|
|
9
10
|
KnowledgeDocument,
|
|
10
11
|
KnowledgeDocumentDoc,
|
|
12
|
+
KnowledgeDocumentReadyProjection,
|
|
11
13
|
UpdateKnowledgeDocumentInput,
|
|
12
14
|
} from "./knowledgeDocuments.types";
|
|
13
15
|
|
|
14
|
-
export const getKnowledgeDocumentsCollection =
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
export const getKnowledgeDocumentsCollection =
|
|
17
|
+
(): Collection<KnowledgeDocument> => {
|
|
18
|
+
return getDb().collection<KnowledgeDocument>(
|
|
19
|
+
KNOWLEDGE_DOCUMENTS_COLLECTION,
|
|
20
|
+
);
|
|
21
|
+
};
|
|
17
22
|
|
|
18
23
|
export const createKnowledgeDocument = async (
|
|
19
24
|
input: CreateKnowledgeDocumentInput,
|
|
@@ -59,6 +64,18 @@ export const listReadyKnowledgeDocumentIdsByClientId = async (
|
|
|
59
64
|
return docs.map((doc) => doc._id.toString());
|
|
60
65
|
};
|
|
61
66
|
|
|
67
|
+
export const listReadyKnowledgeDocumentsByClientId = async (
|
|
68
|
+
clientId: string,
|
|
69
|
+
): Promise<KnowledgeDocumentReadyProjection[]> => {
|
|
70
|
+
return getKnowledgeDocumentsCollection()
|
|
71
|
+
.find(
|
|
72
|
+
{ clientId, status: KNOWLEDGE_DOCUMENT_STATUSES.READY },
|
|
73
|
+
{ projection: KNOWLEDGE_DOCUMENT_READY_PROJECTION },
|
|
74
|
+
)
|
|
75
|
+
.sort({ createdAt: -1 })
|
|
76
|
+
.toArray() as Promise<KnowledgeDocumentReadyProjection[]>;
|
|
77
|
+
};
|
|
78
|
+
|
|
62
79
|
export const updateKnowledgeDocument = async (
|
|
63
80
|
id: string,
|
|
64
81
|
updates: UpdateKnowledgeDocumentInput,
|
|
@@ -26,6 +26,7 @@ export type KnowledgeDocument = {
|
|
|
26
26
|
pageCount?: number;
|
|
27
27
|
pagesExtracted?: number;
|
|
28
28
|
charCount?: number;
|
|
29
|
+
totalTokens?: number;
|
|
29
30
|
contentHash?: string;
|
|
30
31
|
status: KnowledgeDocumentStatus;
|
|
31
32
|
errorMessage?: string;
|
|
@@ -54,9 +55,21 @@ export type UpdateKnowledgeDocumentInput = Partial<
|
|
|
54
55
|
| "pageCount"
|
|
55
56
|
| "pagesExtracted"
|
|
56
57
|
| "charCount"
|
|
58
|
+
| "totalTokens"
|
|
57
59
|
| "contentHash"
|
|
58
60
|
| "status"
|
|
59
61
|
| "errorMessage"
|
|
60
62
|
| "progressPercent"
|
|
61
63
|
>
|
|
62
64
|
>;
|
|
65
|
+
|
|
66
|
+
export type KnowledgeDocumentReadyProjection = Pick<
|
|
67
|
+
KnowledgeDocumentDoc,
|
|
68
|
+
| "_id"
|
|
69
|
+
| "clientId"
|
|
70
|
+
| "filename"
|
|
71
|
+
| "markdownStoragePath"
|
|
72
|
+
| "charCount"
|
|
73
|
+
| "totalTokens"
|
|
74
|
+
| "status"
|
|
75
|
+
>;
|
|
@@ -6,7 +6,9 @@ import {
|
|
|
6
6
|
getScanResourceById,
|
|
7
7
|
getScanResourceCountsByScanIds,
|
|
8
8
|
deleteScanResourcesByScanId,
|
|
9
|
+
listPageSummariesByScanIds,
|
|
9
10
|
} from "../scanResources.getters";
|
|
11
|
+
import { URL_TASK_STATUSES } from "../scanResources.constants";
|
|
10
12
|
import { boardColumn } from "../scanResources.utils";
|
|
11
13
|
import { createScanResourceFixture } from "../../../test-utils/factories";
|
|
12
14
|
|
|
@@ -147,6 +149,59 @@ describe("db.websitalk.scanResources", () => {
|
|
|
147
149
|
});
|
|
148
150
|
});
|
|
149
151
|
|
|
152
|
+
describe("listPageSummariesByScanIds()", () => {
|
|
153
|
+
it("returns completed pages for the given scans", async () => {
|
|
154
|
+
const scanA = new ObjectId().toString();
|
|
155
|
+
const scanB = new ObjectId().toString();
|
|
156
|
+
await getScanResourcesCollection().insertMany([
|
|
157
|
+
createScanResourceFixture({
|
|
158
|
+
scanId: scanA,
|
|
159
|
+
status: URL_TASK_STATUSES.URL_COMPLETED,
|
|
160
|
+
url: "https://a.example/page",
|
|
161
|
+
title: "A",
|
|
162
|
+
context: "summary a",
|
|
163
|
+
summaryTokens: 12,
|
|
164
|
+
unsummarized: false,
|
|
165
|
+
}),
|
|
166
|
+
createScanResourceFixture({
|
|
167
|
+
scanId: scanA,
|
|
168
|
+
status: URL_TASK_STATUSES.URL_DUPLICATE_CONTENT,
|
|
169
|
+
context: "dup",
|
|
170
|
+
}),
|
|
171
|
+
createScanResourceFixture({
|
|
172
|
+
scanId: scanB,
|
|
173
|
+
status: URL_TASK_STATUSES.URL_COMPLETED,
|
|
174
|
+
url: "https://b.example/page",
|
|
175
|
+
context: "summary b",
|
|
176
|
+
}),
|
|
177
|
+
createScanResourceFixture({
|
|
178
|
+
scanId: new ObjectId().toString(),
|
|
179
|
+
status: URL_TASK_STATUSES.URL_COMPLETED,
|
|
180
|
+
context: "other scan",
|
|
181
|
+
}),
|
|
182
|
+
]);
|
|
183
|
+
|
|
184
|
+
const pages = await listPageSummariesByScanIds([scanA, scanB]);
|
|
185
|
+
expect(pages).toHaveLength(2);
|
|
186
|
+
expect(pages.map((page) => page.scanId).sort()).toEqual(
|
|
187
|
+
[scanA, scanB].sort(),
|
|
188
|
+
);
|
|
189
|
+
const pageA = pages.find((page) => page.scanId === scanA);
|
|
190
|
+
expect(pageA).toMatchObject({
|
|
191
|
+
url: "https://a.example/page",
|
|
192
|
+
title: "A",
|
|
193
|
+
context: "summary a",
|
|
194
|
+
summaryTokens: 12,
|
|
195
|
+
unsummarized: false,
|
|
196
|
+
status: URL_TASK_STATUSES.URL_COMPLETED,
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
it("returns an empty array when scanIds is empty", async () => {
|
|
201
|
+
expect(await listPageSummariesByScanIds([])).toEqual([]);
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
|
|
150
205
|
describe("getScanResourceById()", () => {
|
|
151
206
|
it("returns the full document including stageLogs in insertion order", async () => {
|
|
152
207
|
const scanId = new ObjectId().toString();
|
|
@@ -17,7 +17,10 @@ export const BOARD_COLUMN_STATUSES = {
|
|
|
17
17
|
PENDING: [URL_TASK_STATUSES.URL_PENDING],
|
|
18
18
|
SCANNING: [URL_TASK_STATUSES.URL_SCANNING],
|
|
19
19
|
READY_TO_PROCESS: [URL_TASK_STATUSES.URL_READY_TO_PROCESS],
|
|
20
|
-
CHUNKING: [
|
|
20
|
+
CHUNKING: [
|
|
21
|
+
URL_TASK_STATUSES.URL_CHUNKING,
|
|
22
|
+
URL_TASK_STATUSES.URL_PENDING_CHUNKS,
|
|
23
|
+
],
|
|
21
24
|
PROCESSING: [URL_TASK_STATUSES.URL_EMBEDDING],
|
|
22
25
|
COMPLETED: [
|
|
23
26
|
URL_TASK_STATUSES.URL_COMPLETED,
|
|
@@ -43,5 +46,15 @@ export const SCAN_RESOURCE_BOARD_PROJECTION = {
|
|
|
43
46
|
sourceType: 1,
|
|
44
47
|
} as const;
|
|
45
48
|
|
|
49
|
+
export const SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION = {
|
|
50
|
+
scanId: 1,
|
|
51
|
+
url: 1,
|
|
52
|
+
title: 1,
|
|
53
|
+
context: 1,
|
|
54
|
+
summaryTokens: 1,
|
|
55
|
+
unsummarized: 1,
|
|
56
|
+
status: 1,
|
|
57
|
+
} as const;
|
|
58
|
+
|
|
46
59
|
export const DEFAULT_PAGE_LIMIT = 4;
|
|
47
60
|
export const MAX_PAGE_LIMIT = 50;
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
MAX_PAGE_LIMIT,
|
|
6
6
|
SCAN_RESOURCES_COLLECTION,
|
|
7
7
|
SCAN_RESOURCE_BOARD_PROJECTION,
|
|
8
|
+
SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION,
|
|
9
|
+
URL_TASK_STATUSES,
|
|
8
10
|
} from "./scanResources.constants";
|
|
9
11
|
import type {
|
|
10
12
|
PagedResult,
|
|
@@ -12,6 +14,7 @@ import type {
|
|
|
12
14
|
ScanResource,
|
|
13
15
|
ScanResourceBoardProjection,
|
|
14
16
|
ScanResourceDoc,
|
|
17
|
+
ScanResourcePageSummary,
|
|
15
18
|
UrlTaskStatus,
|
|
16
19
|
} from "./scanResources.types";
|
|
17
20
|
import {
|
|
@@ -55,6 +58,22 @@ export const getScanResourceCountsByScanIds = async (
|
|
|
55
58
|
return Object.fromEntries(rows.map((row) => [row._id, row.count]));
|
|
56
59
|
};
|
|
57
60
|
|
|
61
|
+
export const listPageSummariesByScanIds = async (
|
|
62
|
+
scanIds: string[],
|
|
63
|
+
): Promise<ScanResourcePageSummary[]> => {
|
|
64
|
+
if (scanIds.length === 0) return [];
|
|
65
|
+
|
|
66
|
+
return getScanResourcesCollection()
|
|
67
|
+
.find(
|
|
68
|
+
{
|
|
69
|
+
scanId: { $in: scanIds },
|
|
70
|
+
status: URL_TASK_STATUSES.URL_COMPLETED,
|
|
71
|
+
},
|
|
72
|
+
{ projection: SCAN_RESOURCE_PAGE_SUMMARY_PROJECTION },
|
|
73
|
+
)
|
|
74
|
+
.toArray() as Promise<ScanResourcePageSummary[]>;
|
|
75
|
+
};
|
|
76
|
+
|
|
58
77
|
export const getScanPages = async (
|
|
59
78
|
query: ScanPagesQuery,
|
|
60
79
|
): Promise<PagedResult<ScanResourceBoardProjection>> => {
|
|
@@ -28,6 +28,9 @@ export type ScanResource = {
|
|
|
28
28
|
language?: string | null;
|
|
29
29
|
sourceType?: string | null;
|
|
30
30
|
context?: string | null;
|
|
31
|
+
rawContext?: string | null;
|
|
32
|
+
summaryTokens?: number | null;
|
|
33
|
+
unsummarized?: boolean | null;
|
|
31
34
|
contentHash?: string | null;
|
|
32
35
|
duplicateOfTaskId?: string | null;
|
|
33
36
|
breadcrumbs?: unknown;
|
|
@@ -75,6 +78,18 @@ export type ScanResourceBoardProjection = Pick<
|
|
|
75
78
|
| "sourceType"
|
|
76
79
|
>;
|
|
77
80
|
|
|
81
|
+
export type ScanResourcePageSummary = Pick<
|
|
82
|
+
ScanResourceDoc,
|
|
83
|
+
| "_id"
|
|
84
|
+
| "scanId"
|
|
85
|
+
| "url"
|
|
86
|
+
| "title"
|
|
87
|
+
| "context"
|
|
88
|
+
| "summaryTokens"
|
|
89
|
+
| "unsummarized"
|
|
90
|
+
| "status"
|
|
91
|
+
>;
|
|
92
|
+
|
|
78
93
|
export type ScanPagesQuery = {
|
|
79
94
|
scanId: string;
|
|
80
95
|
column: BoardColumn;
|