@futdevpro/nts-dynamo 1.15.57 → 1.15.60

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 (134) hide show
  1. package/.dynamo/logs/cicd-pipeline/output.log +1637 -3567
  2. package/.dynamo/logs/cicd-pipeline/status.json +42 -344
  3. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +110 -0
  4. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts.map +1 -0
  5. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +419 -0
  6. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js.map +1 -0
  7. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +50 -0
  8. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts.map +1 -0
  9. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +3 -0
  10. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js.map +1 -0
  11. package/build/_modules/ai/_modules/document-ai/index.d.ts +2 -0
  12. package/build/_modules/ai/_modules/document-ai/index.d.ts.map +1 -1
  13. package/build/_modules/ai/_modules/document-ai/index.js +2 -0
  14. package/build/_modules/ai/_modules/document-ai/index.js.map +1 -1
  15. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +81 -0
  16. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts.map +1 -0
  17. package/build/_modules/ai/_services/ai-embedding-mock.service.js +167 -0
  18. package/build/_modules/ai/_services/ai-embedding-mock.service.js.map +1 -0
  19. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +52 -0
  20. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts.map +1 -0
  21. package/build/_modules/ai/_services/ai-embedding-provider.registry.js +79 -0
  22. package/build/_modules/ai/_services/ai-embedding-provider.registry.js.map +1 -0
  23. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +111 -0
  24. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts.map +1 -0
  25. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +298 -0
  26. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js.map +1 -0
  27. package/build/_modules/ai/index.d.ts +5 -0
  28. package/build/_modules/ai/index.d.ts.map +1 -1
  29. package/build/_modules/ai/index.js +8 -0
  30. package/build/_modules/ai/index.js.map +1 -1
  31. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +59 -0
  32. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts.map +1 -0
  33. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +169 -0
  34. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js.map +1 -0
  35. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +32 -0
  36. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts.map +1 -0
  37. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +8 -0
  38. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js.map +1 -0
  39. package/build/_modules/data-readers/index.d.ts +3 -0
  40. package/build/_modules/data-readers/index.d.ts.map +1 -0
  41. package/build/_modules/data-readers/index.js +11 -0
  42. package/build/_modules/data-readers/index.js.map +1 -0
  43. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +36 -0
  44. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts.map +1 -0
  45. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +54 -0
  46. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js.map +1 -0
  47. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +70 -0
  48. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts.map +1 -0
  49. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +123 -0
  50. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js.map +1 -0
  51. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +43 -0
  52. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts.map +1 -0
  53. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +72 -0
  54. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js.map +1 -0
  55. package/build/_modules/local-vector-search/index.d.ts +3 -0
  56. package/build/_modules/local-vector-search/index.d.ts.map +1 -1
  57. package/build/_modules/local-vector-search/index.js +4 -0
  58. package/build/_modules/local-vector-search/index.js.map +1 -1
  59. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +109 -0
  60. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts.map +1 -0
  61. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +14 -0
  62. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js.map +1 -0
  63. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +71 -0
  64. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts.map +1 -0
  65. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +99 -0
  66. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js.map +1 -0
  67. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +57 -0
  68. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts.map +1 -0
  69. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +139 -0
  70. package/build/_modules/mcp/_services/dynts-mcp.adapter.js.map +1 -0
  71. package/build/_modules/mcp/index.d.ts +4 -0
  72. package/build/_modules/mcp/index.d.ts.map +1 -0
  73. package/build/_modules/mcp/index.js +13 -0
  74. package/build/_modules/mcp/index.js.map +1 -0
  75. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +19 -0
  76. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts.map +1 -0
  77. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +23 -0
  78. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js.map +1 -0
  79. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +44 -0
  80. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts.map +1 -0
  81. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +68 -0
  82. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js.map +1 -0
  83. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +89 -0
  84. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts.map +1 -0
  85. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +12 -0
  86. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js.map +1 -0
  87. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +84 -0
  88. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts.map +1 -0
  89. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +220 -0
  90. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js.map +1 -0
  91. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +54 -0
  92. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts.map +1 -0
  93. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +76 -0
  94. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js.map +1 -0
  95. package/build/_modules/scoped-config/index.d.ts +6 -0
  96. package/build/_modules/scoped-config/index.d.ts.map +1 -0
  97. package/build/_modules/scoped-config/index.js +15 -0
  98. package/build/_modules/scoped-config/index.js.map +1 -0
  99. package/package.json +58 -2
  100. package/pnpm-workspace.yaml +1 -0
  101. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -0
  102. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -0
  103. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -0
  104. package/src/_modules/ai/_modules/document-ai/index.ts +2 -0
  105. package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -0
  106. package/src/_modules/ai/_services/ai-embedding-mock.service.ts +233 -0
  107. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -0
  108. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -0
  109. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -0
  110. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -0
  111. package/src/_modules/ai/index.ts +10 -0
  112. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -0
  113. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -0
  114. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -0
  115. package/src/_modules/data-readers/index.ts +11 -0
  116. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -0
  117. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -0
  118. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +150 -0
  119. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -0
  120. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +108 -0
  121. package/src/_modules/local-vector-search/index.ts +6 -1
  122. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -0
  123. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -0
  124. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -0
  125. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -0
  126. package/src/_modules/mcp/index.ts +13 -0
  127. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -0
  128. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -0
  129. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -0
  130. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -0
  131. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -0
  132. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -0
  133. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -0
  134. package/src/_modules/scoped-config/index.ts +17 -0
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * A `DyNTS_Sqlite_Reader_Util` (BFR-AM-009) shared shape-jei. Egy fájlban a szorosan összetartozó
4
+ * SQLite-reader I/O-típusok (`*.interface.ts` az egy-export-per-file konvenció ismert kivétele a
5
+ * tightly-coupled shape-ekre).
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=dynts-sqlite-reader.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynts-sqlite-reader.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,3 @@
1
+ export * from './_models/interfaces/dynts-sqlite-reader.interface';
2
+ export * from './_collections/dynts-sqlite-reader.util';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/data-readers/index.ts"],"names":[],"mappings":"AAOA,cAAc,oDAAoD,CAAC;AAGnE,cAAc,yCAAyC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // DATA-READERS MODULE — domain-agnosztikus, read-only külső-adatforrás olvasók (NEM Mongo). Jelenleg:
3
+ // `DyNTS_Sqlite_Reader_Util` (BFR-AM-009) — read-only SQLite reader (`better-sqlite3`, opcionális
4
+ // natív peer-dep). SELECT-only guard + fail-soft strukturált hibák.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ // INTERFACES
8
+ tslib_1.__exportStar(require("./_models/interfaces/dynts-sqlite-reader.interface"), exports);
9
+ // COLLECTIONS (utils)
10
+ tslib_1.__exportStar(require("./_collections/dynts-sqlite-reader.util"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/data-readers/index.ts"],"names":[],"mappings":";AAEA,sGAAsG;AACtG,kGAAkG;AAClG,oEAAoE;;;AAEpE,aAAa;AACb,6FAAmE;AAEnE,sBAAsB;AACtB,kFAAwD"}
@@ -0,0 +1,36 @@
1
+ import { DyFM_DataModel_Params, DyFM_Metadata } from '@futdevpro/fsm-dynamo';
2
+ /**
3
+ * `DyNTS_LVS_VectorPersist` (BFR-AM-001) — egy MongoDB-ben perzistált vektor-rekord, ami a
4
+ * `LVS_VectorPool_ControlService` **in-memory** pool-jának tartós háttértára. A FAM (fdp-agent-memory)
5
+ * workaround-ját generalizálja: a vektorok a SAJÁT Mongo-ban élnek, boot-kor a memória-pool-ba
6
+ * hidratálódnak — **NEM** MongoDB Atlas Vector Search.
7
+ *
8
+ * Egy dokumentum = **egy vektor egy adott pool-ban**. A `collectionKey` particionálja a pool-okat
9
+ * (egy fogyasztó több, logikailag elkülönített pool-t tarthat — pl. táranként). A `vectorId` a pool-on
10
+ * belüli kulcs (a `pool.addVector(vectorId, embedding)` ezzel illeszt).
11
+ *
12
+ * `extends DyFM_Metadata`: az identitás/metadata (`_id`, `__created`, `__lastModified`, `_deleted`) az
13
+ * ősből jön. A `metadata` `unknown` (Mongoose `Mixed`) — a fogyasztó tetszőleges kísérő-adatot tárolhat
14
+ * (a séma NEM validál); az `embedding` `number[]` a perzistált nyers vektor.
15
+ */
16
+ export declare class DyNTS_LVS_VectorPersist extends DyFM_Metadata {
17
+ /** A pool-on belüli vektor-kulcs (a `pool.addVector(vectorId, ...)` ezzel illeszt). */
18
+ vectorId?: string;
19
+ /** Melyik (logikai) pool-hoz tartozik — a pool-particionálás kulcsa (hidratálás-szűrő). */
20
+ collectionKey?: string;
21
+ /** A perzistált NYERS vektor (a pool maga számolja a normalizált másolatot). */
22
+ embedding?: number[];
23
+ /** A vektor dimenziója (homogenitás-ellenőrzéshez + diagnosztikához tárolt). */
24
+ dimensions?: number;
25
+ /** Opcionális fogyasztó-specifikus kísérő-adat (Mongoose `Mixed`; a séma NEM validál). */
26
+ metadata?: unknown;
27
+ constructor(set?: Partial<DyNTS_LVS_VectorPersist>);
28
+ }
29
+ /**
30
+ * MongoDB data-params a `dynts_lvs_vector` collection-höz (BFR-AM-001). Az `embedding` `number[]` a
31
+ * perzistált nyers vektor; a `metadata` `type:'object'` (Mongoose `Mixed`) — a séma NEM validál. A
32
+ * `vectorId` + `collectionKey` index-elt (a hidratálás `collectionKey`-re, az upsert/remove a
33
+ * `vectorId`+`collectionKey` párra szűr).
34
+ */
35
+ export declare const DyNTS_lvsVectorPersist_dataParams: DyFM_DataModel_Params<DyNTS_LVS_VectorPersist>;
36
+ //# sourceMappingURL=lvs-vector-persist.data-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-vector-persist.data-model.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAe,MAAM,uBAAuB,CAAC;AAE1F;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IAExD,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAEP,GAAG,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;CAOnD;AAED;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,EAAE,qBAAqB,CAAC,uBAAuB,CAUzF,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_lvsVectorPersist_dataParams = exports.DyNTS_LVS_VectorPersist = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ /**
6
+ * `DyNTS_LVS_VectorPersist` (BFR-AM-001) — egy MongoDB-ben perzistált vektor-rekord, ami a
7
+ * `LVS_VectorPool_ControlService` **in-memory** pool-jának tartós háttértára. A FAM (fdp-agent-memory)
8
+ * workaround-ját generalizálja: a vektorok a SAJÁT Mongo-ban élnek, boot-kor a memória-pool-ba
9
+ * hidratálódnak — **NEM** MongoDB Atlas Vector Search.
10
+ *
11
+ * Egy dokumentum = **egy vektor egy adott pool-ban**. A `collectionKey` particionálja a pool-okat
12
+ * (egy fogyasztó több, logikailag elkülönített pool-t tarthat — pl. táranként). A `vectorId` a pool-on
13
+ * belüli kulcs (a `pool.addVector(vectorId, embedding)` ezzel illeszt).
14
+ *
15
+ * `extends DyFM_Metadata`: az identitás/metadata (`_id`, `__created`, `__lastModified`, `_deleted`) az
16
+ * ősből jön. A `metadata` `unknown` (Mongoose `Mixed`) — a fogyasztó tetszőleges kísérő-adatot tárolhat
17
+ * (a séma NEM validál); az `embedding` `number[]` a perzistált nyers vektor.
18
+ */
19
+ class DyNTS_LVS_VectorPersist extends fsm_dynamo_1.DyFM_Metadata {
20
+ /** A pool-on belüli vektor-kulcs (a `pool.addVector(vectorId, ...)` ezzel illeszt). */
21
+ vectorId;
22
+ /** Melyik (logikai) pool-hoz tartozik — a pool-particionálás kulcsa (hidratálás-szűrő). */
23
+ collectionKey;
24
+ /** A perzistált NYERS vektor (a pool maga számolja a normalizált másolatot). */
25
+ embedding;
26
+ /** A vektor dimenziója (homogenitás-ellenőrzéshez + diagnosztikához tárolt). */
27
+ dimensions;
28
+ /** Opcionális fogyasztó-specifikus kísérő-adat (Mongoose `Mixed`; a séma NEM validál). */
29
+ metadata;
30
+ constructor(set) {
31
+ super(set);
32
+ if (set) {
33
+ fsm_dynamo_1.DyFM_Object.cleanAssign(this, set);
34
+ }
35
+ }
36
+ }
37
+ exports.DyNTS_LVS_VectorPersist = DyNTS_LVS_VectorPersist;
38
+ /**
39
+ * MongoDB data-params a `dynts_lvs_vector` collection-höz (BFR-AM-001). Az `embedding` `number[]` a
40
+ * perzistált nyers vektor; a `metadata` `type:'object'` (Mongoose `Mixed`) — a séma NEM validál. A
41
+ * `vectorId` + `collectionKey` index-elt (a hidratálás `collectionKey`-re, az upsert/remove a
42
+ * `vectorId`+`collectionKey` párra szűr).
43
+ */
44
+ exports.DyNTS_lvsVectorPersist_dataParams = new fsm_dynamo_1.DyFM_DataModel_Params({
45
+ dataName: 'dynts_lvs_vector',
46
+ properties: {
47
+ vectorId: { type: 'string', index: true, required: true },
48
+ collectionKey: { type: 'string', index: true, required: true },
49
+ embedding: { type: 'number[]' },
50
+ dimensions: { type: 'number' },
51
+ metadata: { type: 'object' },
52
+ },
53
+ });
54
+ //# sourceMappingURL=lvs-vector-persist.data-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-vector-persist.data-model.js","sourceRoot":"","sources":["../../../../../src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts"],"names":[],"mappings":";;;AACA,sDAA0F;AAE1F;;;;;;;;;;;;;GAaG;AACH,MAAa,uBAAwB,SAAQ,0BAAa;IAExD,uFAAuF;IACvF,QAAQ,CAAU;IAElB,2FAA2F;IAC3F,aAAa,CAAU;IAEvB,gFAAgF;IAChF,SAAS,CAAY;IAErB,gFAAgF;IAChF,UAAU,CAAU;IAEpB,0FAA0F;IAC1F,QAAQ,CAAW;IAEnB,YAAY,GAAsC;QAChD,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,GAAG,EAAE,CAAC;YACR,wBAAW,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF;AAxBD,0DAwBC;AAED;;;;;GAKG;AACU,QAAA,iCAAiC,GAC5C,IAAI,kCAAqB,CAA0B;IACjD,QAAQ,EAAE,kBAAkB;IAC5B,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC7B;CACF,CAAC,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { LVS_Search_Mode } from '../_enums/lvs-search-mode.enum';
2
+ import { LVS_SearchResult } from '../_models/lvs-search-result.interface';
3
+ import { DyNTS_LVS_VectorPersist } from '../_models/data-models/lvs-vector-persist.data-model';
4
+ import { LVS_VectorPool_ControlService } from './lvs-vector-pool.control-service';
5
+ /**
6
+ * `DyNTS_LVS_PersistentVectorPool_ControlService` (BFR-AM-001) — egy `LVS_VectorPool_ControlService` in-memory pool +
7
+ * MongoDB-perzisztencia **kompozíciója**. A FAM (fdp-agent-memory) `FAM_VectorSearch_ControlService`
8
+ * persist+hydrate workaround-ját generalizálja bedrock-szintre: a vektorok a SAJÁT Mongo-ban
9
+ * (`dynts_lvs_vector`) élnek, boot-kor a memória-pool-ba hidratálódnak — **NEM** MongoDB Atlas
10
+ * Vector Search.
11
+ *
12
+ * **Miért KOMPOZÍCIÓ (NEM a pool-class módosítása):** a `LVS_VectorPool_ControlService`-t egy másik,
13
+ * párhuzamos WIP (hybrid cosine+BM25) is érinti; a pool-class változtatása merge-konfliktust okozna.
14
+ * Ez a wrapper a pool-t VÁLTOZATLANUL hagyja (delegál: `addVector`/`removeVector`/`updateVector`/
15
+ * `search`), és a perzisztencia-mellékhatást a wrapper-metódusokban végzi. Egy wrapper-instance egy
16
+ * `collectionKey` (logikai pool); több pool = több wrapper.
17
+ *
18
+ * **FIGYELEM (memory: dynts_dataservice_eager_resolve):** a `DyNTS_DataService` base-ctor EAGER
19
+ * `getDBService`-t hív, ezért a wrapper NEM tart élő data-service-mezőt — minden DB-művelet előtt lazy
20
+ * `new DyNTS_LVS_VectorPersist_DataService(...)` (a `getPersistService` ezt adja).
21
+ */
22
+ export declare class DyNTS_LVS_PersistentVectorPool_ControlService {
23
+ /** A wrapped in-memory pool (a Dynamo LVS engine; VÁLTOZATLAN — kompozíció, nem módosítás). */
24
+ private readonly pool;
25
+ /** A pool-particionálás kulcsa (a Mongo-rekordok `collectionKey`-e + a hidratálás-szűrő). */
26
+ private readonly collectionKey;
27
+ /** A perzisztencia-műveletek issuer-e (audit). */
28
+ private readonly issuer;
29
+ constructor(set: {
30
+ collectionKey: string;
31
+ issuer: string;
32
+ pool?: LVS_VectorPool_ControlService;
33
+ });
34
+ /** A wrapped in-memory pool (közvetlen olvasáshoz — pl. más search-mód, getAll). */
35
+ getPool(): LVS_VectorPool_ControlService;
36
+ /**
37
+ * Egy vektor felvétele a memória-pool-ba ÉS tartós upsert-je Mongo-ba (persist-on-write, FAM-minta).
38
+ * A pool `addVector`-ja upsert-szemantikájú (azonos kulcson felülír), a Mongo-oldal is `(collectionKey,
39
+ * vectorId)`-upsert. A Mongo-írás MELLÉKHATÁS a memória-művelet után (a memória a forrás, a Mongo a tár).
40
+ */
41
+ addVector(vectorId: string, vector: number[], metadata?: unknown): Promise<void>;
42
+ /**
43
+ * Egy MEGLÉVŐ vektor frissítése a memória-pool-ban + tartós upsert Mongo-ba. A pool `updateVector`-ja
44
+ * dob, ha a kulcs nem létezik (a pool-szerződés változatlan) — a Mongo-írás csak siker után fut.
45
+ */
46
+ updateVector(vectorId: string, vector: number[], metadata?: unknown): Promise<void>;
47
+ /** Egy vektor eltávolítása a memória-pool-ból ÉS a tartós tárból (`(collectionKey, vectorId)`). */
48
+ removeVector(vectorId: string): Promise<void>;
49
+ /** Keresés a memória-pool-on (a wrapped pool `search`-jét delegálja — VÁLTOZATLAN engine). */
50
+ search(query: number[], k: number, mode: LVS_Search_Mode): LVS_SearchResult[];
51
+ /**
52
+ * BOOT-HIDRATÁLÁS (FAM-minta, BFR-AM-001): a `collectionKey` ÖSSZES perzistált vektorát betölti a
53
+ * MEMÓRIA-pool-ba (`pool.addVector`), így a szerver-restart utáni in-memory index újraépül. A pool-t
54
+ * előbb üríti (idempotens hidratálás). A hiányos (üres `vectorId`/`embedding`) rekordokat átugorja.
55
+ * Visszaadja a betöltött vektorok számát. **NEM** Atlas — saját Mongo + in-memory pool.
56
+ */
57
+ hydrateFromMongo(): Promise<number>;
58
+ /**
59
+ * Perzistált rekordok közvetlen hidratálása a memória-pool-ba (Mongo-olvasás NÉLKÜL) — ha a hívó már
60
+ * kezében van a rekord-halmaz (pl. batch-boot). A pool-t előbb üríti (idempotens). Visszaadja a
61
+ * betöltött vektorok számát.
62
+ */
63
+ hydrate(records: DyNTS_LVS_VectorPersist[]): number;
64
+ /**
65
+ * Lazy persist-data-service (memory: dynts_dataservice_eager_resolve — a base-ctor eager
66
+ * `getDBService`-e miatt NEM tartható élő mezőként).
67
+ */
68
+ private getPersistService;
69
+ }
70
+ //# sourceMappingURL=lvs-persistent-vector-pool.control-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-persistent-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAE/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,6CAA6C;IAExD,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,GAAG,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,6BAA6B,CAAC;KACtC;IAOD,oFAAoF;IACpF,OAAO,IAAI,6BAA6B;IAIxC;;;;OAIG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtF;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzF,mGAAmG;IAC7F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,8FAA8F;IAC9F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,gBAAgB,EAAE;IAI7E;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBzC;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,MAAM;IAenD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_LVS_PersistentVectorPool_ControlService = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const lvs_vector_persist_data_service_1 = require("./lvs-vector-persist.data-service");
6
+ const lvs_vector_pool_control_service_1 = require("./lvs-vector-pool.control-service");
7
+ /**
8
+ * `DyNTS_LVS_PersistentVectorPool_ControlService` (BFR-AM-001) — egy `LVS_VectorPool_ControlService` in-memory pool +
9
+ * MongoDB-perzisztencia **kompozíciója**. A FAM (fdp-agent-memory) `FAM_VectorSearch_ControlService`
10
+ * persist+hydrate workaround-ját generalizálja bedrock-szintre: a vektorok a SAJÁT Mongo-ban
11
+ * (`dynts_lvs_vector`) élnek, boot-kor a memória-pool-ba hidratálódnak — **NEM** MongoDB Atlas
12
+ * Vector Search.
13
+ *
14
+ * **Miért KOMPOZÍCIÓ (NEM a pool-class módosítása):** a `LVS_VectorPool_ControlService`-t egy másik,
15
+ * párhuzamos WIP (hybrid cosine+BM25) is érinti; a pool-class változtatása merge-konfliktust okozna.
16
+ * Ez a wrapper a pool-t VÁLTOZATLANUL hagyja (delegál: `addVector`/`removeVector`/`updateVector`/
17
+ * `search`), és a perzisztencia-mellékhatást a wrapper-metódusokban végzi. Egy wrapper-instance egy
18
+ * `collectionKey` (logikai pool); több pool = több wrapper.
19
+ *
20
+ * **FIGYELEM (memory: dynts_dataservice_eager_resolve):** a `DyNTS_DataService` base-ctor EAGER
21
+ * `getDBService`-t hív, ezért a wrapper NEM tart élő data-service-mezőt — minden DB-művelet előtt lazy
22
+ * `new DyNTS_LVS_VectorPersist_DataService(...)` (a `getPersistService` ezt adja).
23
+ */
24
+ class DyNTS_LVS_PersistentVectorPool_ControlService {
25
+ /** A wrapped in-memory pool (a Dynamo LVS engine; VÁLTOZATLAN — kompozíció, nem módosítás). */
26
+ pool;
27
+ /** A pool-particionálás kulcsa (a Mongo-rekordok `collectionKey`-e + a hidratálás-szűrő). */
28
+ collectionKey;
29
+ /** A perzisztencia-műveletek issuer-e (audit). */
30
+ issuer;
31
+ constructor(set) {
32
+ this.collectionKey = set.collectionKey;
33
+ this.issuer = set.issuer;
34
+ // Saját pool, ha a hívó nem ad be egyet (a wrapper nem módosítja a pool-osztályt — kompozíció).
35
+ this.pool = set.pool ?? new lvs_vector_pool_control_service_1.LVS_VectorPool_ControlService();
36
+ }
37
+ /** A wrapped in-memory pool (közvetlen olvasáshoz — pl. más search-mód, getAll). */
38
+ getPool() {
39
+ return this.pool;
40
+ }
41
+ /**
42
+ * Egy vektor felvétele a memória-pool-ba ÉS tartós upsert-je Mongo-ba (persist-on-write, FAM-minta).
43
+ * A pool `addVector`-ja upsert-szemantikájú (azonos kulcson felülír), a Mongo-oldal is `(collectionKey,
44
+ * vectorId)`-upsert. A Mongo-írás MELLÉKHATÁS a memória-művelet után (a memória a forrás, a Mongo a tár).
45
+ */
46
+ async addVector(vectorId, vector, metadata) {
47
+ this.pool.addVector(vectorId, vector);
48
+ await this.getPersistService().upsertVector({
49
+ collectionKey: this.collectionKey,
50
+ vectorId: vectorId,
51
+ embedding: vector,
52
+ metadata: metadata,
53
+ });
54
+ }
55
+ /**
56
+ * Egy MEGLÉVŐ vektor frissítése a memória-pool-ban + tartós upsert Mongo-ba. A pool `updateVector`-ja
57
+ * dob, ha a kulcs nem létezik (a pool-szerződés változatlan) — a Mongo-írás csak siker után fut.
58
+ */
59
+ async updateVector(vectorId, vector, metadata) {
60
+ this.pool.updateVector(vectorId, vector);
61
+ await this.getPersistService().upsertVector({
62
+ collectionKey: this.collectionKey,
63
+ vectorId: vectorId,
64
+ embedding: vector,
65
+ metadata: metadata,
66
+ });
67
+ }
68
+ /** Egy vektor eltávolítása a memória-pool-ból ÉS a tartós tárból (`(collectionKey, vectorId)`). */
69
+ async removeVector(vectorId) {
70
+ this.pool.removeVector(vectorId);
71
+ await this.getPersistService().removeVector(this.collectionKey, vectorId);
72
+ }
73
+ /** Keresés a memória-pool-on (a wrapped pool `search`-jét delegálja — VÁLTOZATLAN engine). */
74
+ search(query, k, mode) {
75
+ return this.pool.search(query, k, mode);
76
+ }
77
+ /**
78
+ * BOOT-HIDRATÁLÁS (FAM-minta, BFR-AM-001): a `collectionKey` ÖSSZES perzistált vektorát betölti a
79
+ * MEMÓRIA-pool-ba (`pool.addVector`), így a szerver-restart utáni in-memory index újraépül. A pool-t
80
+ * előbb üríti (idempotens hidratálás). A hiányos (üres `vectorId`/`embedding`) rekordokat átugorja.
81
+ * Visszaadja a betöltött vektorok számát. **NEM** Atlas — saját Mongo + in-memory pool.
82
+ */
83
+ async hydrateFromMongo() {
84
+ const records = await this.getPersistService().findByCollectionKey(this.collectionKey);
85
+ this.pool.clearPool();
86
+ let loaded = 0;
87
+ for (const record of records) {
88
+ if (!record.vectorId || !record.embedding?.length) {
89
+ continue;
90
+ }
91
+ this.pool.addVector(record.vectorId, record.embedding);
92
+ loaded++;
93
+ }
94
+ fsm_dynamo_1.DyFM_Log.log(`[DyNTS LVS hydrate] '${this.collectionKey}' pool: ${loaded} vektor betöltve az in-memory pool-ba.`);
95
+ return loaded;
96
+ }
97
+ /**
98
+ * Perzistált rekordok közvetlen hidratálása a memória-pool-ba (Mongo-olvasás NÉLKÜL) — ha a hívó már
99
+ * kezében van a rekord-halmaz (pl. batch-boot). A pool-t előbb üríti (idempotens). Visszaadja a
100
+ * betöltött vektorok számát.
101
+ */
102
+ hydrate(records) {
103
+ this.pool.clearPool();
104
+ let loaded = 0;
105
+ for (const record of records) {
106
+ if (!record.vectorId || !record.embedding?.length) {
107
+ continue;
108
+ }
109
+ this.pool.addVector(record.vectorId, record.embedding);
110
+ loaded++;
111
+ }
112
+ return loaded;
113
+ }
114
+ /**
115
+ * Lazy persist-data-service (memory: dynts_dataservice_eager_resolve — a base-ctor eager
116
+ * `getDBService`-e miatt NEM tartható élő mezőként).
117
+ */
118
+ getPersistService() {
119
+ return new lvs_vector_persist_data_service_1.DyNTS_LVS_VectorPersist_DataService({ issuer: this.issuer });
120
+ }
121
+ }
122
+ exports.DyNTS_LVS_PersistentVectorPool_ControlService = DyNTS_LVS_PersistentVectorPool_ControlService;
123
+ //# sourceMappingURL=lvs-persistent-vector-pool.control-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-persistent-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { DyNTS_DataService } from '../../../_services/base/data.service';
2
+ import { DyNTS_LVS_VectorPersist } from '../_models/data-models/lvs-vector-persist.data-model';
3
+ /**
4
+ * `DyNTS_LVS_VectorPersist_DataService` (BFR-AM-001) — a `dynts_lvs_vector` collection CRUD-rétege; a
5
+ * `LVS_VectorPool_ControlService` in-memory pool-jának tartós Mongo-háttértára. `extends
6
+ * DyNTS_DataService`; a nts-konvenció szerinti `{ data?, issuer }` constructor.
7
+ *
8
+ * **FIGYELEM (memory: dynts_dataservice_eager_resolve):** a `DyNTS_DataService` base-ctor EAGER
9
+ * `getDBService`-t hív → a hívó NEM tarthat élő data-service-példányt mezőként; minden művelet előtt
10
+ * lazy `new DyNTS_LVS_VectorPersist_DataService(...)` kell (a `DyNTS_LVS_PersistentVectorPool_ControlService` így jár el).
11
+ *
12
+ * **Atomikus írás (memory: mongoose_mixed_atomic_write):** az upsert a `(collectionKey, vectorId)`
13
+ * logikai-kulcson MEGLÉVŐ rekordot `updateOne({...},{$set:{embedding,dimensions,metadata}})`-tel
14
+ * frissíti (a Mixed `metadata` `findOne→mutate→save` SILENT-DROP-ja ellen); ÚJ rekordot `saveData`-val ír.
15
+ */
16
+ export declare class DyNTS_LVS_VectorPersist_DataService extends DyNTS_DataService<DyNTS_LVS_VectorPersist> {
17
+ constructor(set: {
18
+ data?: DyNTS_LVS_VectorPersist;
19
+ issuer: string;
20
+ });
21
+ /**
22
+ * Egy (logikai) pool ÖSSZES perzistált, nem-soft-delete-elt vektor-rekordja — a boot-hidratáláshoz
23
+ * (a `DyNTS_LVS_PersistentVectorPool_ControlService.hydrateFromMongo` ezt tölti az in-memory pool-ba).
24
+ */
25
+ findByCollectionKey(collectionKey: string): Promise<DyNTS_LVS_VectorPersist[]>;
26
+ /**
27
+ * Egy vektor ATOMIKUS upsert-je a `(collectionKey, vectorId)` logikai-kulcson. MEGLÉVŐ rekordnál
28
+ * `$set` (a Mixed `metadata` silent-drop ellen — memory: mongoose_mixed_atomic_write); ÚJ rekordnál
29
+ * `saveData`. A dimenzió az `embedding.length`-ből rögzül.
30
+ */
31
+ upsertVector(set: {
32
+ collectionKey: string;
33
+ vectorId: string;
34
+ embedding: number[];
35
+ metadata?: unknown;
36
+ }): Promise<void>;
37
+ /**
38
+ * Egy vektor-rekord végleges törlése a `(collectionKey, vectorId)` logikai-kulcson (a pool
39
+ * `removeVector`-ja után — a tartós tár is törli). `addArchive` nincs → `absolute` true-val töröl.
40
+ */
41
+ removeVector(collectionKey: string, vectorId: string): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=lvs-vector-persist.data-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-vector-persist.data-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,uBAAuB,EAExB,MAAM,sDAAsD,CAAC;AAE9D;;;;;;;;;;;;GAYG;AACH,qBAAa,mCAAoC,SAAQ,iBAAiB,CAAC,uBAAuB,CAAC;gBAG/F,GAAG,EAAE;QACH,IAAI,CAAC,EAAE,uBAAuB,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC;KAChB;IAWH;;;OAGG;IACG,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAOpF;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;OAGG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU3E"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_LVS_VectorPersist_DataService = void 0;
4
+ const data_service_1 = require("../../../_services/base/data.service");
5
+ const lvs_vector_persist_data_model_1 = require("../_models/data-models/lvs-vector-persist.data-model");
6
+ /**
7
+ * `DyNTS_LVS_VectorPersist_DataService` (BFR-AM-001) — a `dynts_lvs_vector` collection CRUD-rétege; a
8
+ * `LVS_VectorPool_ControlService` in-memory pool-jának tartós Mongo-háttértára. `extends
9
+ * DyNTS_DataService`; a nts-konvenció szerinti `{ data?, issuer }` constructor.
10
+ *
11
+ * **FIGYELEM (memory: dynts_dataservice_eager_resolve):** a `DyNTS_DataService` base-ctor EAGER
12
+ * `getDBService`-t hív → a hívó NEM tarthat élő data-service-példányt mezőként; minden művelet előtt
13
+ * lazy `new DyNTS_LVS_VectorPersist_DataService(...)` kell (a `DyNTS_LVS_PersistentVectorPool_ControlService` így jár el).
14
+ *
15
+ * **Atomikus írás (memory: mongoose_mixed_atomic_write):** az upsert a `(collectionKey, vectorId)`
16
+ * logikai-kulcson MEGLÉVŐ rekordot `updateOne({...},{$set:{embedding,dimensions,metadata}})`-tel
17
+ * frissíti (a Mixed `metadata` `findOne→mutate→save` SILENT-DROP-ja ellen); ÚJ rekordot `saveData`-val ír.
18
+ */
19
+ class DyNTS_LVS_VectorPersist_DataService extends data_service_1.DyNTS_DataService {
20
+ constructor(set) {
21
+ super(set.data instanceof lvs_vector_persist_data_model_1.DyNTS_LVS_VectorPersist
22
+ ? set.data
23
+ : new lvs_vector_persist_data_model_1.DyNTS_LVS_VectorPersist(set.data), lvs_vector_persist_data_model_1.DyNTS_lvsVectorPersist_dataParams, set.issuer);
24
+ }
25
+ /**
26
+ * Egy (logikai) pool ÖSSZES perzistált, nem-soft-delete-elt vektor-rekordja — a boot-hidratáláshoz
27
+ * (a `DyNTS_LVS_PersistentVectorPool_ControlService.hydrateFromMongo` ezt tölti az in-memory pool-ba).
28
+ */
29
+ async findByCollectionKey(collectionKey) {
30
+ return this.findDataList({ collectionKey: collectionKey }, true);
31
+ }
32
+ /**
33
+ * Egy vektor ATOMIKUS upsert-je a `(collectionKey, vectorId)` logikai-kulcson. MEGLÉVŐ rekordnál
34
+ * `$set` (a Mixed `metadata` silent-drop ellen — memory: mongoose_mixed_atomic_write); ÚJ rekordnál
35
+ * `saveData`. A dimenzió az `embedding.length`-ből rögzül.
36
+ */
37
+ async upsertVector(set) {
38
+ const existing = await this.findData({ collectionKey: set.collectionKey, vectorId: set.vectorId }, true);
39
+ if (existing?._id) {
40
+ await this.updateData({
41
+ filterBy: { _id: existing._id },
42
+ update: {
43
+ $set: {
44
+ embedding: set.embedding,
45
+ dimensions: set.embedding.length,
46
+ metadata: set.metadata,
47
+ },
48
+ },
49
+ });
50
+ return;
51
+ }
52
+ await this.saveData(new lvs_vector_persist_data_model_1.DyNTS_LVS_VectorPersist({
53
+ collectionKey: set.collectionKey,
54
+ vectorId: set.vectorId,
55
+ embedding: set.embedding,
56
+ dimensions: set.embedding.length,
57
+ metadata: set.metadata,
58
+ }), true);
59
+ }
60
+ /**
61
+ * Egy vektor-rekord végleges törlése a `(collectionKey, vectorId)` logikai-kulcson (a pool
62
+ * `removeVector`-ja után — a tartós tár is törli). `addArchive` nincs → `absolute` true-val töröl.
63
+ */
64
+ async removeVector(collectionKey, vectorId) {
65
+ const existing = await this.findData({ collectionKey: collectionKey, vectorId: vectorId }, true);
66
+ if (existing?._id) {
67
+ await this.deleteData(existing._id, true);
68
+ }
69
+ }
70
+ }
71
+ exports.DyNTS_LVS_VectorPersist_DataService = DyNTS_LVS_VectorPersist_DataService;
72
+ //# sourceMappingURL=lvs-vector-persist.data-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-vector-persist.data-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts"],"names":[],"mappings":";;;AAGA,uEAAyE;AACzE,wGAG8D;AAE9D;;;;;;;;;;;;GAYG;AACH,MAAa,mCAAoC,SAAQ,gCAA0C;IAEjG,YACE,GAGC;QAED,KAAK,CACH,GAAG,CAAC,IAAI,YAAY,uDAAuB;YACzC,CAAC,CAAC,GAAG,CAAC,IAAI;YACV,CAAC,CAAC,IAAI,uDAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EACzC,iEAAiC,EACjC,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,aAAqB;QAC7C,OAAO,IAAI,CAAC,YAAY,CACtB,EAAE,aAAa,EAAE,aAAa,EAAE,EAChC,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,GAKlB;QACC,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,QAAQ,CAC3D,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAC5D,IAAI,CACL,CAAC;QAEF,IAAI,QAAQ,EAAE,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,UAAU,CAAC;gBACpB,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;gBAC/B,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;wBAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACvB;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CACjB,IAAI,uDAAuB,CAAC;YAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,EACF,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,aAAqB,EAAE,QAAgB;QACxD,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,QAAQ,CAC3D,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACpD,IAAI,CACL,CAAC;QAEF,IAAI,QAAQ,EAAE,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AArFD,kFAqFC"}
@@ -1,6 +1,9 @@
1
1
  export * from './_enums/lvs-search-mode.enum';
2
2
  export * from './_models/lvs-search-result.interface';
3
+ export * from './_models/data-models/lvs-vector-persist.data-model';
3
4
  export * from './_services/lvs-doc-chunk-data.service';
4
5
  export * from './_services/lvs-local-vector-search.data-service';
5
6
  export * from './_services/lvs-vector-pool.control-service';
7
+ export * from './_services/lvs-vector-persist.data-service';
8
+ export * from './_services/lvs-persistent-vector-pool.control-service';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/local-vector-search/index.ts"],"names":[],"mappings":"AAGA,cAAc,+BAA+B,CAAC;AAG9C,cAAc,uCAAuC,CAAC;AAGtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/local-vector-search/index.ts"],"names":[],"mappings":"AAGA,cAAc,+BAA+B,CAAC;AAG9C,cAAc,uCAAuC,CAAC;AAGtD,cAAc,qDAAqD,CAAC;AAGpE,cAAc,wCAAwC,CAAC;AACvD,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wDAAwD,CAAC"}
@@ -5,8 +5,12 @@ const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./_enums/lvs-search-mode.enum"), exports);
6
6
  // INTERFACES
7
7
  tslib_1.__exportStar(require("./_models/lvs-search-result.interface"), exports);
8
+ // DATA MODELS
9
+ tslib_1.__exportStar(require("./_models/data-models/lvs-vector-persist.data-model"), exports);
8
10
  // SERVICES
9
11
  tslib_1.__exportStar(require("./_services/lvs-doc-chunk-data.service"), exports);
10
12
  tslib_1.__exportStar(require("./_services/lvs-local-vector-search.data-service"), exports);
11
13
  tslib_1.__exportStar(require("./_services/lvs-vector-pool.control-service"), exports);
14
+ tslib_1.__exportStar(require("./_services/lvs-vector-persist.data-service"), exports);
15
+ tslib_1.__exportStar(require("./_services/lvs-persistent-vector-pool.control-service"), exports);
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/local-vector-search/index.ts"],"names":[],"mappings":";;;AAEA,QAAQ;AACR,wEAA8C;AAE9C,aAAa;AACb,gFAAsD;AAEtD,WAAW;AACX,iFAAuD;AACvD,2FAAiE;AACjE,sFAA4D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/local-vector-search/index.ts"],"names":[],"mappings":";;;AAEA,QAAQ;AACR,wEAA8C;AAE9C,aAAa;AACb,gFAAsD;AAEtD,cAAc;AACd,8FAAoE;AAEpE,WAAW;AACX,iFAAuD;AACvD,2FAAiE;AACjE,sFAA4D;AAC5D,sFAA4D;AAC5D,iGAAuE"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * MCP-réteg shared vokabulár (BFR-AM-003) — a domain-agnosztikus MCP-szerver-base + adaptor közös
3
+ * típusai. Egy fájlban a szorosan összetartozó tool-/transport-típusok (`*.interface.ts` az
4
+ * egy-export-per-file konvenció ismert kivétele a tightly-coupled shape-ekre).
5
+ *
6
+ * Boundary: a `DyNTS_McpToolDefinition` + a `DyNTS_Mcp_Adapter` egyetlen `registerTool` choke-pontot
7
+ * ad — a hivatalos `@modelcontextprotocol/sdk` KIZÁRÓLAG az adaptor mögött él, így egy jövőbeli
8
+ * transport-/SDK-csere NEM-breaking (csak az adaptor cserélődik, a `DyNTS_Mcp_Server_ServiceBase` + a
9
+ * consumer-tool-ok változatlanok). A consumer a SAJÁT tool-jait regisztrálja (a bedrock NEM definiál
10
+ * domain-tool-okat — csak a server-base + a transport + a registry).
11
+ */
12
+ /**
13
+ * Egy JSON-schema fragment (a tool input-schema-jának típusa). Szabad-formájú JSON-objektum (a
14
+ * draft-07 / MCP tool-schema dialektusa); a `properties`/`required`/`type` mezők gyakoriak, de a
15
+ * shape nem kényszerített (az MCP-kliens a `tools/list`-ben kapja vissza, ahogy van).
16
+ */
17
+ export interface DyNTS_Mcp_JsonSchema {
18
+ /** A JSON-schema gyökér-típusa (a tool input-ja jellemzően `object`). */
19
+ type: string;
20
+ /** A property-leírások (kulcs → al-schema). */
21
+ properties?: {
22
+ [key: string]: DyNTS_Mcp_JsonSchema;
23
+ };
24
+ /** Kötelező property-nevek. */
25
+ required?: string[];
26
+ /** Array-elem schema (`type: 'array'` esetén). */
27
+ items?: DyNTS_Mcp_JsonSchema;
28
+ /** Enum-értékek (string/number/boolean literál-halmaz). */
29
+ enum?: (string | number | boolean)[];
30
+ /** Emberi leírás (a tool-választáshoz; az LLM ezt olvassa). */
31
+ description?: string;
32
+ /** Default érték (a kliens-hint). */
33
+ default?: unknown;
34
+ /** Engedi-e a nem-leírt property-ket (`object` schema-n). */
35
+ additionalProperties?: boolean;
36
+ /** Beágyazott `oneOf`/`anyOf` alternatívák. */
37
+ oneOf?: DyNTS_Mcp_JsonSchema[];
38
+ }
39
+ /**
40
+ * Egy MCP tool-handler kimenete (a transport-agnosztikus core ezt adja; az adaptor MCP-tool-result-tá
41
+ * fordítja). A `data` a strukturált JSON-payload; az `isError` jelzi a strukturált hibát — a néma
42
+ * hiba TILOS (a hiba MINDIG `isError:true` payload VAGY dobott exception, amit az adaptor egységesen
43
+ * `isError`-re fordít).
44
+ */
45
+ export interface DyNTS_Mcp_ToolOutcome {
46
+ /** A strukturált eredmény-payload (a tool output-shape JSON-ja). */
47
+ data: unknown;
48
+ /** `true`, ha a kimenet strukturált hiba — az adaptor `isError`-re fordítja. */
49
+ isError?: boolean;
50
+ }
51
+ /**
52
+ * Egy tool-handler aláírása. Az `args` a nyers tool-argumentumok (JSON); a handler a saját
53
+ * input-shape-jére validál + a `DyNTS_Mcp_ToolOutcome`-ot adja. A hibát NEM nyeli el (strukturált
54
+ * hiba-payload `isError:true`-val VAGY dobott exception, amit az adaptor egységes MCP-error-ré fordít).
55
+ */
56
+ export type DyNTS_Mcp_ToolHandler = (args: unknown) => Promise<DyNTS_Mcp_ToolOutcome>;
57
+ /**
58
+ * Egy MCP tool-definíció (a `registerTool` egységes shape-je). A consumer ezt a shape-et használja az
59
+ * advertised halmazba (`name`+`description`+`inputSchema`+`handler`). A `tools/list` a regisztrált
60
+ * tool-ok `name`/`description`/`inputSchema`-ját hirdeti.
61
+ */
62
+ export interface DyNTS_Mcp_ToolDefinition {
63
+ /** A tool neve (a `tools/list`-ben + a `tools/call` dispatch-kulcsa — UNIK kell legyen). */
64
+ name: string;
65
+ /** Agent-barát leírás (mikor melyik tool; az LLM ezt olvassa a tool-választáshoz). */
66
+ description: string;
67
+ /** A tool input JSON-schema-ja (a `tools/list` ezt hirdeti). */
68
+ inputSchema: DyNTS_Mcp_JsonSchema;
69
+ /** A handler (a transport-agnosztikus core-logika). */
70
+ handler: DyNTS_Mcp_ToolHandler;
71
+ }
72
+ /**
73
+ * Az MCP-szerver identitása (a SDK `serverInfo`-ja). A `name`/`version` a kliensnek hirdetett.
74
+ */
75
+ export interface DyNTS_Mcp_ServerInfo {
76
+ /** A szerver neve (a kliensnek hirdetett `serverInfo.name`). */
77
+ name: string;
78
+ /** A szerver verziója (a kliensnek hirdetett `serverInfo.version`). */
79
+ version: string;
80
+ }
81
+ /**
82
+ * A támogatott transport-fajták. MVP: `stdio` (a JSON-RPC a stdin/stdout-on). A `start({transport})`
83
+ * ezzel választ — egy jövőbeli transport (pl. `http`/`sse`) NON-breaking módon bővíthető (csak az
84
+ * adaptor `start`-ja kap új ágat; a server-base + a tool-ok változatlanok).
85
+ */
86
+ export type DyNTS_Mcp_TransportKind = 'stdio';
87
+ /**
88
+ * A `start()` opciói. A `transport` választja a csatornát (default `stdio`).
89
+ */
90
+ export interface DyNTS_Mcp_StartOptions {
91
+ /** A transport-csatorna (default `stdio`). */
92
+ transport?: DyNTS_Mcp_TransportKind;
93
+ }
94
+ /**
95
+ * Egy MCP `tools/call` strukturált eredménye (a transport-payload shape-je). Az adaptor ezt termeli;
96
+ * a `content` egy text-JSON blokk, az `isError` a strukturált-hiba jelzés. Ez a SDK
97
+ * `CallToolResult`-tal wire-kompatibilis al-shape (a SDK-t az adaptor izolálja, ezért itt a saját,
98
+ * SDK-független shape él).
99
+ */
100
+ export interface DyNTS_Mcp_CallResult {
101
+ /** A tartalom-blokkok (MVP: egyetlen `text`-JSON blokk). */
102
+ content: {
103
+ type: 'text';
104
+ text: string;
105
+ }[];
106
+ /** `true`, ha a hívás strukturált hibával végződött (no-silent-failure). */
107
+ isError?: boolean;
108
+ }
109
+ //# sourceMappingURL=dynts-mcp.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynts-mcp.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IACrD,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IAClC,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACrC,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,oBAAoB,CAAC;IAClC,uDAAuD;IACvD,OAAO,EAAE,qBAAqB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,4DAA4D;IAC5D,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}