@x12i/memorix-retrieval 1.5.0 → 1.6.2

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 (76) hide show
  1. package/README.md +1 -0
  2. package/dist/client/create-client.d.ts.map +1 -1
  3. package/dist/client/create-client.js +17 -12
  4. package/dist/client/create-client.js.map +1 -1
  5. package/dist/client/create-from-env.d.ts +4 -0
  6. package/dist/client/create-from-env.d.ts.map +1 -1
  7. package/dist/client/create-from-env.js +10 -3
  8. package/dist/client/create-from-env.js.map +1 -1
  9. package/dist/client/create-xronox-from-env.d.ts +16 -0
  10. package/dist/client/create-xronox-from-env.d.ts.map +1 -0
  11. package/dist/client/create-xronox-from-env.js +17 -0
  12. package/dist/client/create-xronox-from-env.js.map +1 -0
  13. package/dist/client/types.d.ts +7 -5
  14. package/dist/client/types.d.ts.map +1 -1
  15. package/dist/client/xronox-adapter.d.ts +14 -0
  16. package/dist/client/xronox-adapter.d.ts.map +1 -0
  17. package/dist/client/xronox-adapter.js +69 -0
  18. package/dist/client/xronox-adapter.js.map +1 -0
  19. package/dist/client/xronox-like.d.ts +24 -0
  20. package/dist/client/xronox-like.d.ts.map +1 -1
  21. package/dist/data/memorix-count.d.ts +11 -0
  22. package/dist/data/memorix-count.d.ts.map +1 -0
  23. package/dist/data/memorix-count.js +38 -0
  24. package/dist/data/memorix-count.js.map +1 -0
  25. package/dist/data/memorix-read.d.ts +1 -1
  26. package/dist/data/memorix-read.d.ts.map +1 -1
  27. package/dist/data/memorix-read.js +21 -16
  28. package/dist/data/memorix-read.js.map +1 -1
  29. package/dist/explorer/collection-inventory.d.ts +77 -0
  30. package/dist/explorer/collection-inventory.d.ts.map +1 -0
  31. package/dist/explorer/collection-inventory.js +302 -0
  32. package/dist/explorer/collection-inventory.js.map +1 -0
  33. package/dist/explorer/entity-graph.d.ts +35 -12
  34. package/dist/explorer/entity-graph.d.ts.map +1 -1
  35. package/dist/explorer/entity-graph.js +117 -55
  36. package/dist/explorer/entity-graph.js.map +1 -1
  37. package/dist/explorer/health.d.ts +1 -0
  38. package/dist/explorer/health.d.ts.map +1 -1
  39. package/dist/explorer/health.js +53 -0
  40. package/dist/explorer/health.js.map +1 -1
  41. package/dist/explorer/raw-reads.d.ts.map +1 -1
  42. package/dist/explorer/raw-reads.js +4 -12
  43. package/dist/explorer/raw-reads.js.map +1 -1
  44. package/dist/explorer/scoped-workspace.d.ts.map +1 -1
  45. package/dist/explorer/scoped-workspace.js +20 -58
  46. package/dist/explorer/scoped-workspace.js.map +1 -1
  47. package/dist/index.d.ts +5 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +4 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/retrieval/fetch-list.d.ts.map +1 -1
  52. package/dist/retrieval/fetch-list.js +5 -8
  53. package/dist/retrieval/fetch-list.js.map +1 -1
  54. package/dist/tests/collection-inventory.test.d.ts +2 -0
  55. package/dist/tests/collection-inventory.test.d.ts.map +1 -0
  56. package/dist/tests/collection-inventory.test.js +207 -0
  57. package/dist/tests/collection-inventory.test.js.map +1 -0
  58. package/dist/tests/entity-graph.test.d.ts +2 -0
  59. package/dist/tests/entity-graph.test.d.ts.map +1 -0
  60. package/dist/tests/entity-graph.test.js +148 -0
  61. package/dist/tests/entity-graph.test.js.map +1 -0
  62. package/dist/tests/fetch-list.test.js +1 -1
  63. package/dist/tests/fetch-list.test.js.map +1 -1
  64. package/dist/tests/package-json.test.d.ts +2 -0
  65. package/dist/tests/package-json.test.d.ts.map +1 -0
  66. package/dist/tests/package-json.test.js +14 -0
  67. package/dist/tests/package-json.test.js.map +1 -0
  68. package/docs/DATA-TIER-CONTRACT.md +16 -8
  69. package/docs/EXPLORER-HOST-APIS.md +16 -2
  70. package/docs/MEMORIX-CATALOX-CONTRACTS.md +8 -4
  71. package/docs/XRONOX-DATA-TIER-REQUIREMENTS.md +132 -0
  72. package/docs/fr/README.md +15 -0
  73. package/docs/fr/xronox-fr-list-collections.md +196 -0
  74. package/docs/fr/xronox-fr-memorix-env-preset.md +69 -0
  75. package/docs/fr/xronox-fr-per-role-selftest.md +60 -0
  76. package/package.json +3 -12
package/README.md CHANGED
@@ -90,6 +90,7 @@ const client = await createMemorixRetrievalFromEnv({
90
90
  | Doc | Purpose |
91
91
  |-----|---------|
92
92
  | [DATA-TIER-CONTRACT.md](docs/DATA-TIER-CONTRACT.md) | Public API surface (what hosts may call) |
93
+ | [XRONOX-DATA-TIER-REQUIREMENTS.md](docs/XRONOX-DATA-TIER-REQUIREMENTS.md) | Xronox API/env requirements for Memorix data tier |
93
94
  | [MEMORIX-CATALOX-CONTRACTS.md](docs/MEMORIX-CATALOX-CONTRACTS.md) | Descriptor catalogs, JSON formats, cross-component sync |
94
95
  | [MEMORIX-DATABASE-CONVENTIONS.md](docs/MEMORIX-DATABASE-CONVENTIONS.md) | Mongo DB names, collections, env vars |
95
96
  | [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md) | Graph, raw reads, scoped workspace (Explorer hosts) |
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAgDxB"}
1
+ {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAqDxB"}
@@ -7,18 +7,23 @@ export function createMemorixRetrieval(options) {
7
7
  const processEnv = options.processEnv ?? process.env;
8
8
  let mongoClient = options.mongo ?? null;
9
9
  let mongoConnect = null;
10
- const getMongo = async () => {
11
- if (mongoClient)
12
- return mongoClient;
13
- if (!mongoConnect) {
14
- mongoConnect = connectMemorixMongo(processEnv).then((client) => {
15
- mongoClient = client;
16
- return client;
17
- });
10
+ const getMongo = options.mongo
11
+ ? async () => {
12
+ if (mongoClient)
13
+ return mongoClient;
14
+ if (!mongoConnect) {
15
+ mongoConnect = connectMemorixMongo(processEnv).then((client) => {
16
+ mongoClient = client;
17
+ return client;
18
+ });
19
+ }
20
+ return mongoConnect;
18
21
  }
19
- return mongoConnect;
20
- };
22
+ : undefined;
21
23
  const close = async () => {
24
+ if (options.close) {
25
+ await options.close();
26
+ }
22
27
  if (mongoClient) {
23
28
  await mongoClient.close();
24
29
  mongoClient = null;
@@ -33,8 +38,8 @@ export function createMemorixRetrieval(options) {
33
38
  processEnv,
34
39
  memorixDb: options.memorixDb,
35
40
  xronoxRoles: options.xronoxRoles,
36
- getMongo: options.xronox ? undefined : getMongo,
37
- close: options.xronox ? undefined : close,
41
+ getMongo,
42
+ close: options.xronox || options.mongo || options.close ? close : undefined,
38
43
  defaults: {
39
44
  canonicalContentType: defaults.canonicalContentType ?? "snapshots",
40
45
  effectiveDatePath: defaults.effectiveDatePath ?? "modifiedAt",
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAErD,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IACxC,IAAI,YAAY,GAAgC,IAAI,CAAC;IAErD,MAAM,QAAQ,GAAG,KAAK,IAA0B,EAAE;QAChD,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7D,WAAW,GAAG,MAAM,CAAC;gBACrB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QAC/C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QACzC,QAAQ,EAAE;YACR,oBAAoB,EAClB,QAAQ,CAAC,oBAAoB,IAAI,WAAW;YAC9C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,YAAY;YAC7D,0BAA0B,EAAE,QAAQ,CAAC,0BAA0B,IAAI;gBACjE,YAAY;gBACZ,qBAAqB;aACtB;YACD,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,sBAAsB;YAC7D,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,yBAAyB;SACvE;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAErD,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IACxC,IAAI,YAAY,GAAgC,IAAI,CAAC;IAErD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK;QAC5B,CAAC,CAAC,KAAK,IAA0B,EAAE;YAC/B,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAC;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC7D,WAAW,GAAG,MAAM,CAAC;oBACrB,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC3E,QAAQ,EAAE;YACR,oBAAoB,EAClB,QAAQ,CAAC,oBAAoB,IAAI,WAAW;YAC9C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,YAAY;YAC7D,0BAA0B,EAAE,QAAQ,CAAC,0BAA0B,IAAI;gBACjE,YAAY;gBACZ,qBAAqB;aACtB;YACD,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,sBAAsB;YAC7D,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,yBAAyB;SACvE;KACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import type { CreateMemorixRetrievalFromEnvOptions, MemorixRetrievalClient } from "./types.js";
2
+ /**
3
+ * Build a retrieval client with Catalox + Xronox (default data tier).
4
+ * Requires `MONGO_URI` and Xronox role env (see MEMORIX-DATABASE-CONVENTIONS.md).
5
+ */
2
6
  export declare function createMemorixRetrievalFromEnv(options: CreateMemorixRetrievalFromEnvOptions): Promise<MemorixRetrievalClient>;
3
7
  //# sourceMappingURL=create-from-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EACpC,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,sBAAsB,CAAC,CAMjC"}
1
+ {"version":3,"file":"create-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EACpC,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,sBAAsB,CAAC,CASjC"}
@@ -1,10 +1,17 @@
1
- import { connectMemorixMongo } from "../mongo/connection.js";
2
1
  import { createMemorixRetrieval } from "./create-client.js";
2
+ import { createMemorixXronoxFromEnv } from "./create-xronox-from-env.js";
3
+ /**
4
+ * Build a retrieval client with Catalox + Xronox (default data tier).
5
+ * Requires `MONGO_URI` and Xronox role env (see MEMORIX-DATABASE-CONVENTIONS.md).
6
+ */
3
7
  export async function createMemorixRetrievalFromEnv(options) {
4
- const mongo = await connectMemorixMongo(options.processEnv);
8
+ const xronox = await createMemorixXronoxFromEnv({
9
+ processEnv: options.processEnv,
10
+ });
5
11
  return createMemorixRetrieval({
6
12
  ...options,
7
- mongo,
13
+ xronox,
14
+ close: xronox.close,
8
15
  });
9
16
  }
10
17
  //# sourceMappingURL=create-from-env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-from-env.js","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAM5D,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA6C;IAE7C,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,OAAO,sBAAsB,CAAC;QAC5B,GAAG,OAAO;QACV,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"create-from-env.js","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAMzE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA6C;IAE7C,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC;QAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,OAAO,sBAAsB,CAAC;QAC5B,GAAG,OAAO;QACV,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { XronoxLike } from "./xronox-like.js";
2
+ export type CreateMemorixXronoxFromEnvOptions = {
3
+ processEnv?: NodeJS.ProcessEnv;
4
+ };
5
+ export type MemorixXronoxAdapter = XronoxLike & {
6
+ close: () => Promise<void>;
7
+ selfTest?: (options?: {
8
+ testConnectivity?: boolean;
9
+ }) => Promise<unknown>;
10
+ };
11
+ /**
12
+ * Bootstrap Xronox from process env (`MONGO_URI`, role DB vars, etc.).
13
+ * Uses zero-config mode — same pattern as other x12i data-tier hosts.
14
+ */
15
+ export declare function createMemorixXronoxFromEnv(options?: CreateMemorixXronoxFromEnvOptions): Promise<MemorixXronoxAdapter>;
16
+ //# sourceMappingURL=create-xronox-from-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-xronox-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,iCAAiC,GAAG;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC;AAEF;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,oBAAoB,CAAC,CAU/B"}
@@ -0,0 +1,17 @@
1
+ import { createXronox } from "@x12i/xronox";
2
+ import { createMemorixXronoxAdapter } from "./xronox-adapter.js";
3
+ /**
4
+ * Bootstrap Xronox from process env (`MONGO_URI`, role DB vars, etc.).
5
+ * Uses zero-config mode — same pattern as other x12i data-tier hosts.
6
+ */
7
+ export async function createMemorixXronoxFromEnv(options = {}) {
8
+ const xronox = createXronox();
9
+ await xronox.init({
10
+ engine: "nxMongo",
11
+ zeroConfig: true,
12
+ lazyInit: true,
13
+ envFile: false,
14
+ });
15
+ return createMemorixXronoxAdapter(xronox);
16
+ }
17
+ //# sourceMappingURL=create-xronox-from-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-xronox-from-env.js","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAYjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAA6C,EAAE;IAE/C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
@@ -13,16 +13,18 @@ export type ContentReaders = {
13
13
  export type CreateMemorixRetrievalOptions = {
14
14
  appId?: string;
15
15
  catalox: CataloxLike;
16
- /** Advanced: inject a pre-configured Xronox client instead of built-in Mongo reads. */
16
+ /** Xronox data tier (default via createMemorixRetrievalFromEnv). */
17
17
  xronox?: XronoxLike;
18
- /** Advanced: reuse an existing MongoClient (otherwise connects lazily from `MONGO_URI`). */
18
+ /** Advanced escape hatch: inject Mongo directly (tests / legacy only). */
19
19
  mongo?: MongoClient;
20
20
  contentReaders?: ContentReaders;
21
21
  processEnv?: NodeJS.ProcessEnv;
22
- /** Advanced: per-target database overrides (default: env resolution). */
22
+ /** Advanced: per-target database overrides (Mongo escape hatch only). */
23
23
  memorixDb?: Partial<Record<MemorixTarget, string>>;
24
24
  /** Advanced with `xronox`: role names for entity/event databases. */
25
25
  xronoxRoles?: Partial<Record<MemorixTarget, string>>;
26
+ /** Advanced: close hook when wrapping an external Xronox instance. */
27
+ close?: () => Promise<void>;
26
28
  defaults?: {
27
29
  canonicalContentType?: string;
28
30
  effectiveDatePath?: string;
@@ -31,7 +33,7 @@ export type CreateMemorixRetrievalOptions = {
31
33
  contentMaxBytes?: number;
32
34
  };
33
35
  };
34
- export type CreateMemorixRetrievalFromEnvOptions = Omit<CreateMemorixRetrievalOptions, "xronox" | "mongo">;
36
+ export type CreateMemorixRetrievalFromEnvOptions = Omit<CreateMemorixRetrievalOptions, "xronox" | "mongo" | "close">;
35
37
  export type MemorixRetrievalClient = {
36
38
  appId: string;
37
39
  catalox: CataloxLike;
@@ -40,7 +42,7 @@ export type MemorixRetrievalClient = {
40
42
  processEnv: NodeJS.ProcessEnv;
41
43
  memorixDb?: Partial<Record<MemorixTarget, string>>;
42
44
  xronoxRoles?: Partial<Record<MemorixTarget, string>>;
43
- /** Internal Mongo access (simple mode). */
45
+ /** @deprecated Advanced escape hatch — prefer xronox data tier. */
44
46
  getMongo?: () => Promise<MongoClient>;
45
47
  close?: () => Promise<void>;
46
48
  defaults: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Xronox } from "@x12i/xronox";
2
+ import type { XronoxLike } from "./xronox-like.js";
3
+ /**
4
+ * Wrap a configured {@link Xronox} instance for {@link createMemorixRetrieval}.
5
+ * All Mongo I/O goes through Xronox routing (role + collection), not direct driver calls.
6
+ */
7
+ export declare function createMemorixXronoxAdapter(xronox: Xronox): XronoxLike & {
8
+ close: () => Promise<void>;
9
+ selfTest?: (options?: {
10
+ testConnectivity?: boolean;
11
+ selfTestRoles?: string[];
12
+ }) => Promise<unknown>;
13
+ };
14
+ //# sourceMappingURL=xronox-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xronox-adapter.d.ts","sourceRoot":"","sources":["../../src/client/xronox-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAiD,MAAM,kBAAkB,CAAC;AA0ClG;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG;IACvE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB,CAgCA"}
@@ -0,0 +1,69 @@
1
+ import { DEFAULT_MEMORIX_XRONOX_ROLES } from "../data/memorix-read.js";
2
+ function toXronoxReadParams(params) {
3
+ return params;
4
+ }
5
+ function toXronoxCountParams(params) {
6
+ return {
7
+ dataType: params.dataType,
8
+ sourceType: params.sourceType,
9
+ subSourceType: "mongo",
10
+ source: params.source,
11
+ role: params.role,
12
+ query: params.query,
13
+ estimated: params.estimated,
14
+ };
15
+ }
16
+ function toXronoxListCollectionsParams(params) {
17
+ return params;
18
+ }
19
+ async function toArray(xronox, params) {
20
+ const readParams = toXronoxReadParams(params);
21
+ if (xronox.readArray) {
22
+ return xronox.readArray(readParams);
23
+ }
24
+ const result = await xronox.read(readParams);
25
+ if (Array.isArray(result))
26
+ return result;
27
+ const rows = [];
28
+ for await (const row of result) {
29
+ rows.push(row);
30
+ }
31
+ return rows;
32
+ }
33
+ /**
34
+ * Wrap a configured {@link Xronox} instance for {@link createMemorixRetrieval}.
35
+ * All Mongo I/O goes through Xronox routing (role + collection), not direct driver calls.
36
+ */
37
+ export function createMemorixXronoxAdapter(xronox) {
38
+ return {
39
+ read: (params) => xronox.read(toXronoxReadParams(params)),
40
+ readArray: (params) => toArray(xronox, params),
41
+ async countDocuments(params) {
42
+ if (xronox.countDocuments) {
43
+ return xronox.countDocuments(toXronoxCountParams(params));
44
+ }
45
+ const rows = await toArray(xronox, {
46
+ ...params,
47
+ project: ["_id"],
48
+ sort: undefined,
49
+ limit: undefined,
50
+ skip: undefined,
51
+ });
52
+ return rows.length;
53
+ },
54
+ listCollections: xronox.listCollections
55
+ ? (params) => xronox.listCollections(toXronoxListCollectionsParams(params))
56
+ : undefined,
57
+ close: () => xronox.close(),
58
+ selfTest: xronox.selfTest
59
+ ? (options) => xronox.selfTest({
60
+ ...options,
61
+ selfTestRoles: options?.selfTestRoles ?? [
62
+ DEFAULT_MEMORIX_XRONOX_ROLES.entity,
63
+ DEFAULT_MEMORIX_XRONOX_ROLES.event,
64
+ ],
65
+ })
66
+ : undefined,
67
+ };
68
+ }
69
+ //# sourceMappingURL=xronox-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xronox-adapter.js","sourceRoot":"","sources":["../../src/client/xronox-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvE,SAAS,kBAAkB,CAAC,MAAwB;IAClD,OAAO,MAAoB,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAwB;IACnD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,OAAO;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,MAAmC;IAEnC,OAAO,MAA+B,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,MAAwB;IAExB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAc;IAOvD,OAAO;QACL,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACzD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9C,KAAK,CAAC,cAAc,CAAC,MAAwB;YAC3C,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;gBACjC,GAAG,MAAM;gBACT,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,eAAe,EAAE,MAAM,CAAC,eAAe;YACrC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAgB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC5E,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACvB,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,QAAS,CAAC;gBACf,GAAG,OAAO;gBACV,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI;oBACvC,4BAA4B,CAAC,MAAM;oBACnC,4BAA4B,CAAC,KAAK;iBACnC;aACF,CAAC;YACN,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
@@ -10,9 +10,33 @@ export type XronoxReadParams = {
10
10
  sort?: string | string[] | Record<string, 1 | -1>;
11
11
  limit?: number;
12
12
  skip?: number;
13
+ /** When true, use estimatedDocumentCount (ignores query filter). */
14
+ estimated?: boolean;
15
+ };
16
+ export type XronoxListedCollection = {
17
+ name: string;
18
+ type?: string;
19
+ };
20
+ export type XronoxListCollectionsParams = {
21
+ dataType: "metadata" | "memory" | "operation" | "knowledge";
22
+ sourceType: "database";
23
+ subSourceType: "mongo";
24
+ source: string;
25
+ role?: string;
26
+ filter?: Record<string, unknown>;
27
+ excludeSystem?: boolean;
28
+ nameOnly?: boolean;
29
+ };
30
+ export type XronoxListCollectionsResult = {
31
+ database: string;
32
+ collections: XronoxListedCollection[];
13
33
  };
14
34
  export type XronoxLike = {
15
35
  read(params: XronoxReadParams): Promise<unknown[] | AsyncIterable<unknown>>;
16
36
  readArray?(params: XronoxReadParams): Promise<unknown[]>;
37
+ /** Routed document count (same params as read, minus pagination). */
38
+ countDocuments?(params: XronoxReadParams): Promise<number>;
39
+ /** Routed database collection listing (role → db). */
40
+ listCollections?(params: XronoxListCollectionsParams): Promise<XronoxListCollectionsResult>;
17
41
  };
18
42
  //# sourceMappingURL=xronox-like.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xronox-like.d.ts","sourceRoot":"","sources":["../../src/client/xronox-like.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,SAAS,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC1D,CAAC"}
1
+ {"version":3,"file":"xronox-like.d.ts","sourceRoot":"","sources":["../../src/client/xronox-like.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5D,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,SAAS,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,qEAAqE;IACrE,cAAc,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,sDAAsD;IACtD,eAAe,CAAC,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC7F,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { MemorixEntityDescriptor } from "../descriptors/descriptor-types.js";
3
+ export type MemorixCountParams = {
4
+ entity: MemorixEntityDescriptor;
5
+ source: string;
6
+ query?: Record<string, unknown>;
7
+ role?: string;
8
+ estimated?: boolean;
9
+ };
10
+ export declare function memorixCount(client: MemorixRetrievalClient, params: MemorixCountParams): Promise<number>;
11
+ //# sourceMappingURL=memorix-count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memorix-count.d.ts","sourceRoot":"","sources":["../../src/data/memorix-count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAMlF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
@@ -0,0 +1,38 @@
1
+ import { memorixRead, resolveMemorixXronoxRole, } from "./memorix-read.js";
2
+ export async function memorixCount(client, params) {
3
+ if (client.xronox?.countDocuments) {
4
+ return client.xronox.countDocuments({
5
+ dataType: "metadata",
6
+ sourceType: "database",
7
+ subSourceType: "mongo",
8
+ source: params.source,
9
+ role: params.role ?? resolveMemorixXronoxRole(params.entity, client),
10
+ query: params.query,
11
+ estimated: params.estimated,
12
+ });
13
+ }
14
+ if (client.getMongo) {
15
+ const { countMemorixCollection } = await import("../mongo/read-collection.js");
16
+ const { resolveMemorixDbNameForEntity } = await import("../mongo/resolve-db.js");
17
+ const mongo = await client.getMongo();
18
+ const db = resolveMemorixDbNameForEntity(params.entity, client);
19
+ return countMemorixCollection(mongo, {
20
+ db,
21
+ collection: params.source,
22
+ query: params.query,
23
+ });
24
+ }
25
+ if (!client.xronox) {
26
+ throw new Error("Memorix retrieval requires a data tier. Use createMemorixRetrievalFromEnv() " +
27
+ "or pass xronox to createMemorixRetrieval().");
28
+ }
29
+ const rows = await memorixRead(client, {
30
+ entity: params.entity,
31
+ source: params.source,
32
+ query: params.query,
33
+ project: ["_id"],
34
+ role: params.role,
35
+ });
36
+ return rows.length;
37
+ }
38
+ //# sourceMappingURL=memorix-count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memorix-count.js","sourceRoot":"","sources":["../../src/data/memorix-count.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAU3B,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA8B,EAC9B,MAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAClC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,OAAO;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;YACpE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAC/E,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,6BAA6B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,sBAAsB,CAAC,KAAK,EAAE;YACnC,EAAE;YACF,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,8EAA8E;YAC5E,6CAA6C,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,CAAC,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
@@ -2,7 +2,7 @@ import type { MemorixRetrievalClient } from "../client/types.js";
2
2
  import type { XronoxReadParams } from "../client/xronox-like.js";
3
3
  import type { MemorixEntityDescriptor } from "../descriptors/descriptor-types.js";
4
4
  import type { MemorixTarget } from "../mongo/types.js";
5
- /** Advanced only: Xronox role names when passing a custom `xronox` client. */
5
+ /** Xronox role ids for Memorix targets (@x12i/xronox 3.8+ `MONGO_ROLE_MAP`). */
6
6
  export declare const DEFAULT_MEMORIX_XRONOX_ROLES: Record<MemorixTarget, string>;
7
7
  export declare function resolveMemorixXronoxRole(entity: MemorixEntityDescriptor, client: MemorixRetrievalClient): string;
8
8
  export type MemorixReadParams = Omit<XronoxReadParams, "dataType" | "sourceType" | "subSourceType" | "role"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-read.d.ts","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAGlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAGtE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAGR;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,gBAAgB,EAChB,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CACrD,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CA+CpC;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,oBAAc,CAAC"}
1
+ {"version":3,"file":"memorix-read.d.ts","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAGtE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAGR;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,gBAAgB,EAChB,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CACrD,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAoDpC;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,oBAAc,CAAC"}
@@ -1,9 +1,10 @@
1
+ import { sanitizeProjectionPaths } from "../mongo/read-collection.js";
1
2
  import { readMemorixCollection } from "../mongo/read-collection.js";
2
3
  import { resolveMemorixDbNameForEntity } from "../mongo/resolve-db.js";
3
- /** Advanced only: Xronox role names when passing a custom `xronox` client. */
4
+ /** Xronox role ids for Memorix targets (@x12i/xronox 3.8+ `MONGO_ROLE_MAP`). */
4
5
  export const DEFAULT_MEMORIX_XRONOX_ROLES = {
5
- entity: "operational",
6
- event: "logs",
6
+ entity: "memorix_entities",
7
+ event: "memorix_events",
7
8
  };
8
9
  export function resolveMemorixXronoxRole(entity, client) {
9
10
  const target = entity.target ?? "entity";
@@ -13,6 +14,9 @@ export async function memorixRead(client, params) {
13
14
  const { entity, db: dbOverride, role: roleOverride, ...readParams } = params;
14
15
  const db = dbOverride ?? resolveMemorixDbNameForEntity(entity, client);
15
16
  if (client.xronox) {
17
+ const project = readParams.project?.length
18
+ ? sanitizeProjectionPaths(readParams.project)
19
+ : readParams.project;
16
20
  const fullParams = {
17
21
  dataType: "metadata",
18
22
  sourceType: "database",
@@ -20,6 +24,7 @@ export async function memorixRead(client, params) {
20
24
  role: roleOverride ?? resolveMemorixXronoxRole(entity, client),
21
25
  ...readParams,
22
26
  source: params.source,
27
+ project,
23
28
  };
24
29
  if (client.xronox.readArray) {
25
30
  const rows = await client.xronox.readArray(fullParams);
@@ -35,20 +40,20 @@ export async function memorixRead(client, params) {
35
40
  }
36
41
  return rows;
37
42
  }
38
- if (!client.getMongo) {
39
- throw new Error("Memorix retrieval client is missing Mongo access. Use createMemorixRetrieval({ catalox }) " +
40
- "or createMemorixRetrievalFromEnv({ catalox }).");
43
+ if (client.getMongo) {
44
+ const mongo = await client.getMongo();
45
+ return readMemorixCollection(mongo, {
46
+ db,
47
+ collection: params.source,
48
+ query: readParams.query,
49
+ project: readParams.project,
50
+ sort: readParams.sort,
51
+ limit: readParams.limit,
52
+ skip: readParams.skip,
53
+ });
41
54
  }
42
- const mongo = await client.getMongo();
43
- return readMemorixCollection(mongo, {
44
- db,
45
- collection: params.source,
46
- query: readParams.query,
47
- project: readParams.project,
48
- sort: readParams.sort,
49
- limit: readParams.limit,
50
- skip: readParams.skip,
51
- });
55
+ throw new Error("Memorix retrieval client is missing a data tier. Use createMemorixRetrievalFromEnv({ catalox }) " +
56
+ "or pass xronox to createMemorixRetrieval().");
52
57
  }
53
58
  /** @deprecated Use {@link memorixRead}. */
54
59
  export const memorixXronoxRead = memorixRead;
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-read.js","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAGvE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACzE,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,MAA+B,EAC/B,MAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACzC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAA8B,EAC9B,MAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAC7E,MAAM,EAAE,GAAG,UAAU,IAAI,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,UAAU,GAAqB;YACnC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,OAAO;YACtB,IAAI,EAAE,YAAY,IAAI,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9D,GAAG,UAAU;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA4B,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA4B,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,4FAA4F;YAC1F,gDAAgD,CACnD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtC,OAAO,qBAAqB,CAAC,KAAK,EAAE;QAClC,EAAE;QACF,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAC,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"memorix-read.js","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { MemorixTarget } from "../mongo/types.js";
3
+ import type { MemorixEntityGraphDiscovery } from "./entity-graph.js";
4
+ export type CollectionMatchStatus = "matched" | "empty" | "orphan" | "unresolved";
5
+ export type CollectionMatchConfidence = "descriptor" | "heuristic" | "unknown";
6
+ export type CollectionInventoryEntry = {
7
+ collection: string;
8
+ database: string;
9
+ target: MemorixTarget;
10
+ documentCount: number;
11
+ entityName: string | null;
12
+ contentType: string | null;
13
+ matchStatus: CollectionMatchStatus;
14
+ matchConfidence: CollectionMatchConfidence;
15
+ descriptorId?: string;
16
+ listable: boolean;
17
+ };
18
+ export type CollectionInventoryTargetSummary = {
19
+ matchedPopulated: number;
20
+ declaredEmpty: number;
21
+ orphans: number;
22
+ unresolved: number;
23
+ };
24
+ export type BuildMemorixCollectionInventoryOptions = {
25
+ scopedNamespace?: string | null;
26
+ /** Use countDocuments instead of estimatedDocumentCount for orphan scan. */
27
+ includeExactCounts?: boolean;
28
+ };
29
+ export type MemorixCollectionInventoryResult = {
30
+ scannedAt: string;
31
+ memorixDatabases: {
32
+ entity: string;
33
+ event: string;
34
+ };
35
+ databases: Array<{
36
+ name: string;
37
+ target: MemorixTarget;
38
+ collectionCount: number;
39
+ }>;
40
+ entries: CollectionInventoryEntry[];
41
+ summary: CollectionInventoryTargetSummary & {
42
+ byTarget: Record<MemorixTarget, CollectionInventoryTargetSummary>;
43
+ };
44
+ discovery: MemorixEntityGraphDiscovery;
45
+ };
46
+ export type MemorixOrphanGraphNode = {
47
+ entityName: string;
48
+ label: string;
49
+ target: MemorixTarget;
50
+ memorixDatabase: string;
51
+ contentTypes: Array<{
52
+ contentType: string;
53
+ collection: string;
54
+ database: string;
55
+ target: MemorixTarget;
56
+ documentCount: number;
57
+ }>;
58
+ totalDocuments: number;
59
+ inventoryStatus: "orphan";
60
+ listable: false;
61
+ drillable: false;
62
+ count: 0;
63
+ narratives: [];
64
+ connections: [];
65
+ connectedEntityTypes: 0;
66
+ contentTypesWithData: number;
67
+ defaultListDescriptorId: "";
68
+ defaultItemDescriptorId: "";
69
+ };
70
+ export declare function parseOrphanCollection(collection: string, knownPrefixes: string[]): {
71
+ entityName: string | null;
72
+ contentType: string | null;
73
+ confidence: CollectionMatchConfidence;
74
+ };
75
+ export declare function buildMemorixCollectionInventory(client: MemorixRetrievalClient, options?: BuildMemorixCollectionInventoryOptions): Promise<MemorixCollectionInventoryResult>;
76
+ export declare function orphanNodesFromInventory(entries: CollectionInventoryEntry[]): MemorixOrphanGraphNode[];
77
+ //# sourceMappingURL=collection-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-inventory.d.ts","sourceRoot":"","sources":["../../src/explorer/collection-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAiBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAClF,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/E,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,qBAAqB,CAAC;IACnC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,OAAO,EAAE,gCAAgC,GAAG;QAC1C,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC;KACnE,CAAC;IACF,SAAS,EAAE,2BAA2B,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,aAAa,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,QAAQ,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,EAAE,CAAC;IACf,WAAW,EAAE,EAAE,CAAC;IAChB,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,EAAE,CAAC;IAC5B,uBAAuB,EAAE,EAAE,CAAC;CAC7B,CAAC;AA0KF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAAE,GACtB;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAuBlG;AAED,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,sCAA2C,GACnD,OAAO,CAAC,gCAAgC,CAAC,CA8H3C;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,wBAAwB,EAAE,GAClC,sBAAsB,EAAE,CA6C1B"}