@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.
Files changed (51) hide show
  1. package/dist/configuration/models/index.d.ts +2 -2
  2. package/dist/configuration/models/index.d.ts.map +1 -1
  3. package/dist/configuration/models/index.js +3 -1
  4. package/dist/configuration/models/index.js.map +1 -1
  5. package/dist/configuration/models/models.constants.d.ts +1 -0
  6. package/dist/configuration/models/models.constants.d.ts.map +1 -1
  7. package/dist/configuration/models/models.constants.js +2 -1
  8. package/dist/configuration/models/models.constants.js.map +1 -1
  9. package/dist/configuration/models/models.getters.d.ts +5 -0
  10. package/dist/configuration/models/models.getters.d.ts.map +1 -1
  11. package/dist/configuration/models/models.getters.js +14 -1
  12. package/dist/configuration/models/models.getters.js.map +1 -1
  13. package/dist/configuration/models/models.types.d.ts +2 -1
  14. package/dist/configuration/models/models.types.d.ts.map +1 -1
  15. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts +8 -0
  16. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts.map +1 -1
  17. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js +9 -1
  18. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js.map +1 -1
  19. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts +2 -1
  20. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts.map +1 -1
  21. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js +8 -1
  22. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js.map +1 -1
  23. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts +3 -1
  24. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts.map +1 -1
  25. package/dist/websitalk/scanResources/scanResources.constants.d.ts +9 -0
  26. package/dist/websitalk/scanResources/scanResources.constants.d.ts.map +1 -1
  27. package/dist/websitalk/scanResources/scanResources.constants.js +14 -2
  28. package/dist/websitalk/scanResources/scanResources.constants.js.map +1 -1
  29. package/dist/websitalk/scanResources/scanResources.getters.d.ts +2 -1
  30. package/dist/websitalk/scanResources/scanResources.getters.d.ts.map +1 -1
  31. package/dist/websitalk/scanResources/scanResources.getters.js +12 -1
  32. package/dist/websitalk/scanResources/scanResources.getters.js.map +1 -1
  33. package/dist/websitalk/scanResources/scanResources.types.d.ts +4 -0
  34. package/dist/websitalk/scanResources/scanResources.types.d.ts.map +1 -1
  35. package/dist/websitalk/scans/scans.types.d.ts +2 -0
  36. package/dist/websitalk/scans/scans.types.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/configuration/models/__tests__/models.getters.spec.ts +67 -0
  39. package/src/configuration/models/index.ts +2 -0
  40. package/src/configuration/models/models.constants.ts +2 -0
  41. package/src/configuration/models/models.getters.ts +23 -5
  42. package/src/configuration/models/models.types.ts +2 -1
  43. package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +52 -0
  44. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +9 -0
  45. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +20 -3
  46. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +13 -0
  47. package/src/websitalk/scanResources/__tests__/scanResources.spec.ts +55 -0
  48. package/src/websitalk/scanResources/scanResources.constants.ts +14 -1
  49. package/src/websitalk/scanResources/scanResources.getters.ts +19 -0
  50. package/src/websitalk/scanResources/scanResources.types.ts +15 -0
  51. 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,uDAK4B;AAJ1B,qHAAA,iBAAiB,OAAA;AACjB,+GAAA,WAAW,OAAA;AACX,4HAAA,wBAAwB,OAAA;AACxB,uHAAA,mBAAmB,OAAA;AAErB,mDAO0B;AANxB,qHAAA,mBAAmB,OAAA;AACnB,4GAAA,UAAU,OAAA;AACV,mHAAA,iBAAiB,OAAA;AACjB,qHAAA,mBAAmB,OAAA;AACnB,iHAAA,eAAe,OAAA;AACf,0HAAA,wBAAwB,OAAA"}
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;AAI7C,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;;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
+ {"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,yDAAuD;AAGvD,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;;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"}
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 — shape varies per `provider`
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;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,WAAW,CAAC"}
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;AAMhE,OAAO,KAAK,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,+BAA+B,QAAO,UAAU,CAAC,iBAAiB,CAE9E,CAAC;AAEF,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,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
+ {"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":"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"}
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;;;;;;;;CAcxB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;CAYjC,CAAC;AAEX,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,cAAc,KAAK,CAAC"}
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: [exports.URL_TASK_STATUSES.URL_CHUNKING, exports.URL_TASK_STATUSES.URL_PENDING_CHUNKS],
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,CAAC,yBAAiB,CAAC,YAAY,EAAE,yBAAiB,CAAC,kBAAkB,CAAC;IAChF,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,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,cAAc,GAAG,EAAE,CAAC"}
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;AAQvD,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,2BAA2B,EAC3B,eAAe,EACf,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,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
+ {"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":"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"}
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,aAAa,GACvB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,EAAE,EAAE,aAAa,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,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,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IAEnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAE5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAEnD,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,eAAe,EACb,KAAK,GACL,KAAK,GACL,OAAO,GACP,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,qBAAqB,GACrB,SAAS,GACT,cAAc,GACd,WAAW,GACX,YAAY,CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"scanResources.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,aAAa,GACvB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,EAAE,EAAE,aAAa,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,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,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IAEnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAE5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAEnD,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,eAAe,EACb,KAAK,GACL,KAAK,GACL,OAAO,GACP,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,qBAAqB,GACrB,SAAS,GACT,cAAc,GACd,WAAW,GACX,YAAY,CACf,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,eAAe,EACb,KAAK,GACL,QAAQ,GACR,KAAK,GACL,OAAO,GACP,SAAS,GACT,eAAe,GACf,cAAc,GACd,QAAQ,CACX,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC"}
@@ -31,6 +31,8 @@ export type Scan = {
31
31
  activeTasksCount: number;
32
32
  pagesScanned: number;
33
33
  pagesSkipped: number;
34
+ summaryTokens?: number;
35
+ pagesUnsummarized?: number;
34
36
  skipped: SkippedEntry[];
35
37
  siteChrome: SiteChromeEntry;
36
38
  createdAt: Date;
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talkpilot/core-db",
3
- "version": "1.3.54",
3
+ "version": "1.3.56",
4
4
  "description": "Core database package for centralized connections and ORM integration.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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,5 +1,7 @@
1
1
  export const MODELS_COLLECTION = "models";
2
2
 
3
+ export const MODEL_CONFIG_DEFAULTS_CONTEXT_WINDOW = "contextWindow";
4
+
3
5
  export const MODEL_TYPES = ["realtime", "stt"] as const;
4
6
 
5
7
  export const REALTIME_MODEL_PROVIDERS = ["openai", "gemini", "xai"] as const;
@@ -1,7 +1,10 @@
1
1
  import { Collection, Filter } from "mongodb";
2
2
 
3
3
  import { getDb } from "../index";
4
- import { MODELS_COLLECTION } from "./models.constants";
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 — shape varies per `provider`
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 = (): Collection<KnowledgeDocument> => {
15
- return getDb().collection<KnowledgeDocument>(KNOWLEDGE_DOCUMENTS_COLLECTION);
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: [URL_TASK_STATUSES.URL_CHUNKING, URL_TASK_STATUSES.URL_PENDING_CHUNKS],
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;
@@ -36,6 +36,8 @@ export type Scan = {
36
36
  activeTasksCount: number;
37
37
  pagesScanned: number;
38
38
  pagesSkipped: number;
39
+ summaryTokens?: number;
40
+ pagesUnsummarized?: number;
39
41
  skipped: SkippedEntry[];
40
42
  siteChrome: SiteChromeEntry;
41
43
  createdAt: Date;