@x12i/memorix-retrieval 1.1.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +64 -24
  2. package/catalox-seeds/inputs/entity-descriptors/assets.json +2 -0
  3. package/catalox-seeds/inputs/entity-descriptors/variabilities-groups.json +2 -0
  4. package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +2 -0
  5. package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +6 -0
  6. package/dist/client/catalox-adapter.d.ts +9 -0
  7. package/dist/client/catalox-adapter.d.ts.map +1 -0
  8. package/dist/client/catalox-adapter.js +42 -0
  9. package/dist/client/catalox-adapter.js.map +1 -0
  10. package/dist/client/catalox-like.d.ts +16 -0
  11. package/dist/client/catalox-like.d.ts.map +1 -1
  12. package/dist/client/create-client.js +2 -2
  13. package/dist/client/create-client.js.map +1 -1
  14. package/dist/client/create-stack-from-env.d.ts +21 -0
  15. package/dist/client/create-stack-from-env.d.ts.map +1 -0
  16. package/dist/client/create-stack-from-env.js +32 -0
  17. package/dist/client/create-stack-from-env.js.map +1 -0
  18. package/dist/client/types.d.ts +5 -1
  19. package/dist/client/types.d.ts.map +1 -1
  20. package/dist/data/record-id.d.ts +6 -0
  21. package/dist/data/record-id.d.ts.map +1 -0
  22. package/dist/data/record-id.js +49 -0
  23. package/dist/data/record-id.js.map +1 -0
  24. package/dist/descriptors/content-type-labels.d.ts +7 -0
  25. package/dist/descriptors/content-type-labels.d.ts.map +1 -0
  26. package/dist/descriptors/content-type-labels.js +26 -0
  27. package/dist/descriptors/content-type-labels.js.map +1 -0
  28. package/dist/descriptors/descriptor-types.d.ts +4 -0
  29. package/dist/descriptors/descriptor-types.d.ts.map +1 -1
  30. package/dist/descriptors/discover-entities.d.ts +28 -0
  31. package/dist/descriptors/discover-entities.d.ts.map +1 -0
  32. package/dist/descriptors/discover-entities.js +94 -0
  33. package/dist/descriptors/discover-entities.js.map +1 -0
  34. package/dist/descriptors/resolve-app-id.d.ts +4 -0
  35. package/dist/descriptors/resolve-app-id.d.ts.map +1 -0
  36. package/dist/descriptors/resolve-app-id.js +8 -0
  37. package/dist/descriptors/resolve-app-id.js.map +1 -0
  38. package/dist/descriptors/resolve-default-descriptors.d.ts +11 -0
  39. package/dist/descriptors/resolve-default-descriptors.d.ts.map +1 -0
  40. package/dist/descriptors/resolve-default-descriptors.js +22 -0
  41. package/dist/descriptors/resolve-default-descriptors.js.map +1 -0
  42. package/dist/descriptors/validate-descriptor.d.ts.map +1 -1
  43. package/dist/descriptors/validate-descriptor.js +11 -0
  44. package/dist/descriptors/validate-descriptor.js.map +1 -1
  45. package/dist/explorer/entity-graph.d.ts +61 -0
  46. package/dist/explorer/entity-graph.d.ts.map +1 -0
  47. package/dist/explorer/entity-graph.js +155 -0
  48. package/dist/explorer/entity-graph.js.map +1 -0
  49. package/dist/explorer/health.d.ts +14 -0
  50. package/dist/explorer/health.d.ts.map +1 -0
  51. package/dist/explorer/health.js +70 -0
  52. package/dist/explorer/health.js.map +1 -0
  53. package/dist/explorer/raw-reads.d.ts +25 -0
  54. package/dist/explorer/raw-reads.d.ts.map +1 -0
  55. package/dist/explorer/raw-reads.js +78 -0
  56. package/dist/explorer/raw-reads.js.map +1 -0
  57. package/dist/explorer/scoped-workspace.d.ts +24 -0
  58. package/dist/explorer/scoped-workspace.d.ts.map +1 -0
  59. package/dist/explorer/scoped-workspace.js +217 -0
  60. package/dist/explorer/scoped-workspace.js.map +1 -0
  61. package/dist/index.d.ts +21 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +19 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/mongo/read-collection.d.ts +1 -0
  66. package/dist/mongo/read-collection.d.ts.map +1 -1
  67. package/dist/mongo/read-collection.js +6 -0
  68. package/dist/mongo/read-collection.js.map +1 -1
  69. package/dist/retrieval/fetch-for-entity.d.ts +18 -0
  70. package/dist/retrieval/fetch-for-entity.d.ts.map +1 -0
  71. package/dist/retrieval/fetch-for-entity.js +21 -0
  72. package/dist/retrieval/fetch-for-entity.js.map +1 -0
  73. package/dist/retrieval/fetch-list.d.ts.map +1 -1
  74. package/dist/retrieval/fetch-list.js +16 -1
  75. package/dist/retrieval/fetch-list.js.map +1 -1
  76. package/dist/retrieval/resolve-filters.d.ts +2 -0
  77. package/dist/retrieval/resolve-filters.d.ts.map +1 -1
  78. package/dist/retrieval/resolve-filters.js +24 -3
  79. package/dist/retrieval/resolve-filters.js.map +1 -1
  80. package/dist/retrieval/resolve-list-search.d.ts +6 -0
  81. package/dist/retrieval/resolve-list-search.d.ts.map +1 -0
  82. package/dist/retrieval/resolve-list-search.js +25 -0
  83. package/dist/retrieval/resolve-list-search.js.map +1 -0
  84. package/dist/seeds/build-manifest.d.ts +8 -0
  85. package/dist/seeds/build-manifest.d.ts.map +1 -0
  86. package/dist/seeds/build-manifest.js +83 -0
  87. package/dist/seeds/build-manifest.js.map +1 -0
  88. package/dist/seeds/check-needs-seed.d.ts +10 -0
  89. package/dist/seeds/check-needs-seed.d.ts.map +1 -0
  90. package/dist/seeds/check-needs-seed.js +66 -0
  91. package/dist/seeds/check-needs-seed.js.map +1 -0
  92. package/dist/seeds/default-seed-spec.d.ts +12 -0
  93. package/dist/seeds/default-seed-spec.d.ts.map +1 -0
  94. package/dist/seeds/default-seed-spec.js +89 -0
  95. package/dist/seeds/default-seed-spec.js.map +1 -0
  96. package/dist/seeds/merge-for-apply.d.ts +28 -0
  97. package/dist/seeds/merge-for-apply.d.ts.map +1 -0
  98. package/dist/seeds/merge-for-apply.js +31 -0
  99. package/dist/seeds/merge-for-apply.js.map +1 -0
  100. package/dist/seeds/paths.d.ts +10 -0
  101. package/dist/seeds/paths.d.ts.map +1 -0
  102. package/dist/seeds/paths.js +40 -0
  103. package/dist/seeds/paths.js.map +1 -0
  104. package/dist/seeds/seed-types.d.ts +57 -0
  105. package/dist/seeds/seed-types.d.ts.map +1 -0
  106. package/dist/seeds/seed-types.js +2 -0
  107. package/dist/seeds/seed-types.js.map +1 -0
  108. package/dist/tests/descriptor-validation.test.js +15 -0
  109. package/dist/tests/descriptor-validation.test.js.map +1 -1
  110. package/dist/tests/fixtures.d.ts.map +1 -1
  111. package/dist/tests/fixtures.js +2 -0
  112. package/dist/tests/fixtures.js.map +1 -1
  113. package/dist/tests/relations.test.js +3 -0
  114. package/dist/tests/relations.test.js.map +1 -1
  115. package/dist/tests/resolve-app-id.test.d.ts +2 -0
  116. package/dist/tests/resolve-app-id.test.d.ts.map +1 -0
  117. package/dist/tests/resolve-app-id.test.js +19 -0
  118. package/dist/tests/resolve-app-id.test.js.map +1 -0
  119. package/dist/tests/resolve-filters.test.d.ts +2 -0
  120. package/dist/tests/resolve-filters.test.d.ts.map +1 -0
  121. package/dist/tests/resolve-filters.test.js +47 -0
  122. package/dist/tests/resolve-filters.test.js.map +1 -0
  123. package/dist/tests/seed-check.test.d.ts +2 -0
  124. package/dist/tests/seed-check.test.d.ts.map +1 -0
  125. package/dist/tests/seed-check.test.js +47 -0
  126. package/dist/tests/seed-check.test.js.map +1 -0
  127. package/dist/tests/seed-manifest.test.d.ts +2 -0
  128. package/dist/tests/seed-manifest.test.d.ts.map +1 -0
  129. package/dist/tests/seed-manifest.test.js +80 -0
  130. package/dist/tests/seed-manifest.test.js.map +1 -0
  131. package/docs/DATA-TIER-CONTRACT.md +138 -0
  132. package/docs/EXPLORER-HOST-APIS.md +50 -0
  133. package/docs/MEMORIX-CATALOX-CONTRACTS.md +540 -0
  134. package/package.json +4 -3
package/README.md CHANGED
@@ -6,19 +6,48 @@ Descriptor-driven retrieval/composition layer for Memorix entity and event data.
6
6
 
7
7
  | Package | Role |
8
8
  |---------|------|
9
- | `@x12i/memorix` | Low-level entity collection I/O, discovery, raw document access |
10
- | `@x12i/memorix-retrieval` | Descriptor-driven lists, items, relations, and content-object reads |
9
+ | `@x12i/memorix-retrieval` | **The** data tier: Catalox descriptors + Mongo reads → lists, items, graph, health |
11
10
 
12
11
  **Catalox** defines what to fetch. This package reads Mongo and composes API-ready JSON. **@x12i/helpers** fetches external content objects when needed.
13
12
 
14
13
  ## Quick start
15
14
 
16
- Set `MONGO_URI` and provide a Catalox client. Database names, entity vs event routing, and collection resolution are handled internally.
15
+ Set `MONGO_URI`. Database names, entity vs event routing, and collection resolution are handled internally.
17
16
 
18
17
  ```bash
19
18
  MONGO_URI=mongodb://localhost:27017
20
19
  ```
21
20
 
21
+ ### Host apps (Catalox + Mongo)
22
+
23
+ ```typescript
24
+ import {
25
+ createMemorixRetrievalStackFromEnv,
26
+ fetchMemorixListForEntity,
27
+ fetchMemorixItemForEntity,
28
+ } from "@x12i/memorix-retrieval";
29
+
30
+ const { client, appId } = await createMemorixRetrievalStackFromEnv({
31
+ cataloxContext: { superAdmin: true, actor: { type: "service", id: "my-api" } },
32
+ });
33
+
34
+ const list = await fetchMemorixListForEntity(client, {
35
+ entityName: "assets",
36
+ page: { limit: 50, offset: 0 },
37
+ });
38
+
39
+ const item = await fetchMemorixItemForEntity(client, {
40
+ entityName: "assets",
41
+ entityId: "10.150.68.31",
42
+ });
43
+
44
+ await client.close?.();
45
+ ```
46
+
47
+ App id resolves: option → `CATALOX_APP_ID` → `MEMORIX_APP_ID` → `memorix`.
48
+
49
+ ### Bring your own Catalox client
50
+
22
51
  ```typescript
23
52
  import {
24
53
  createMemorixRetrievalFromEnv,
@@ -33,18 +62,13 @@ const list = await fetchMemorixList(client, {
33
62
  page: { limit: 50, offset: 0 },
34
63
  });
35
64
 
36
- const item = await fetchMemorixItem(client, {
37
- itemDescriptorId: "asset-detail-item",
38
- entityId: "10.150.68.31",
39
- });
40
-
41
65
  await client.close?.();
42
66
  ```
43
67
 
44
- Lazy connect (same env, no upfront `await`):
68
+ Lazy connect (no upfront `await`):
45
69
 
46
70
  ```typescript
47
- import { createMemorixRetrieval, fetchMemorixList } from "@x12i/memorix-retrieval";
71
+ import { createMemorixRetrieval } from "@x12i/memorix-retrieval";
48
72
 
49
73
  const client = createMemorixRetrieval({ catalox });
50
74
  // connects to Mongo on first read using MONGO_URI
@@ -61,14 +85,22 @@ const client = await createMemorixRetrievalFromEnv({
61
85
  });
62
86
  ```
63
87
 
64
- ## Advanced (optional)
88
+ ## Documentation
65
89
 
66
- Override defaults only when you need to:
90
+ | Doc | Purpose |
91
+ |-----|---------|
92
+ | [DATA-TIER-CONTRACT.md](docs/DATA-TIER-CONTRACT.md) | Public API surface (what hosts may call) |
93
+ | [MEMORIX-CATALOX-CONTRACTS.md](docs/MEMORIX-CATALOX-CONTRACTS.md) | Descriptor catalogs, JSON formats, cross-component sync |
94
+ | [MEMORIX-DATABASE-CONVENTIONS.md](docs/MEMORIX-DATABASE-CONVENTIONS.md) | Mongo DB names, collections, env vars |
95
+ | [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md) | Graph, raw reads, scoped workspace (Explorer hosts) |
67
96
 
68
- | Option | Purpose |
69
- |--------|---------|
97
+ ## Advanced (optional)
98
+
99
+ | Option / env | Purpose |
100
+ |--------------|---------|
70
101
  | `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` | Non-default database names |
71
102
  | `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` | Per-type collection overrides |
103
+ | `CATALOX_APP_ID` / `MEMORIX_APP_ID` | Catalox app namespace (default: `memorix`) |
72
104
  | `memorixDb` | Code overrides for entity/event DB names |
73
105
  | `xronox` | Inject a pre-configured Xronox client instead of built-in Mongo reads |
74
106
  | `mongo` | Reuse an existing `MongoClient` |
@@ -81,15 +113,20 @@ Entity descriptors declare `target: "entity" | "event"` (default `entity`):
81
113
  | `assets`, `variabilities-groups` | `memorix-entities` |
82
114
  | `vulnerabilities` | `memorix-events` |
83
115
 
84
- See [docs/MEMORIX-DATABASE-CONVENTIONS.md](docs/MEMORIX-DATABASE-CONVENTIONS.md).
116
+ Each entity descriptor must define `defaultListDescriptorId` and `defaultItemDescriptorId` (Option A wiring).
85
117
 
86
118
  ## Catalox seeds
87
119
 
88
120
  Source of truth: `catalox-seeds/inputs/`
89
121
 
122
+ Seed **helpers** live in the package (`buildMemorixRetrievalSeedManifest`, `checkMemorixRetrievalSeedNeeds`, …). **Scripts** in `scripts/` call those helpers — seeding is not part of runtime retrieval.
123
+
90
124
  ```bash
125
+ npm run catalox:seed:build # build manifest from inputs
91
126
  npm run catalox:seed:memorix-retrieval:validate
92
- npm run catalox:seed:memorix-retrieval:apply
127
+ npm run catalox:seed:memorix-retrieval:apply # always apply
128
+ npm run catalox:seed:ensure # apply only if catalog items missing
129
+ npm run catalox:seed:ensure -- --dry-run
93
130
  ```
94
131
 
95
132
  Every seeded item shares scope from `catalox-seeds/inputs/scope.json`:
@@ -103,22 +140,25 @@ Every seeded item shares scope from `catalox-seeds/inputs/scope.json`:
103
140
  }
104
141
  ```
105
142
 
143
+ ## Build, test, and live smoke
144
+
106
145
  ```bash
107
- npm run mongo:check-collections
108
- npm run smoke:retrieval -- --list assets-main-list --limit 5
146
+ npm run build
147
+ npm test
109
148
  ```
110
149
 
111
- ## Build & test
150
+ Live checks (require `.env` with `MONGO_URI` and Catalox/Firestore credentials):
112
151
 
113
152
  ```bash
114
- npm run build
115
- npm test
153
+ npm run mongo:check-collections
154
+ npm run smoke:retrieval -- --list assets-main-list --limit 5
155
+ npm run smoke:retrieval -- --entity vulnerabilities --list critical-vulnerabilities-list --skip-graph
116
156
  ```
117
157
 
118
- ## Publish
158
+ Smoke runs discovery, health, list/item (by id and by entity defaults), and optionally the entity graph.
119
159
 
120
- From the x12i workspace root:
160
+ ## Publish
121
161
 
122
162
  ```bash
123
- ./scripts/publish-memorix-packages.sh
163
+ npm run build && npm test && npm publish
124
164
  ```
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "id": "assets",
3
3
  "entityName": "assets",
4
+ "defaultListDescriptorId": "assets-main-list",
5
+ "defaultItemDescriptorId": "asset-detail-item",
4
6
  "target": "entity",
5
7
  "collectionPrefix": "assets",
6
8
  "identity": {
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "id": "variabilities-groups",
3
3
  "entityName": "variabilities-groups",
4
+ "defaultListDescriptorId": "variabilities-groups-main-list",
5
+ "defaultItemDescriptorId": "variabilities-group-detail-item",
4
6
  "target": "entity",
5
7
  "collectionPrefix": "variabilities-groups",
6
8
  "identity": {
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "id": "vulnerabilities",
3
3
  "entityName": "vulnerabilities",
4
+ "defaultListDescriptorId": "vulnerabilities-main-list",
5
+ "defaultItemDescriptorId": "vulnerability-detail-item",
4
6
  "target": "event",
5
7
  "collectionPrefix": "vulnerabilities",
6
8
  "identity": {
@@ -249,6 +249,8 @@
249
249
  "data": {
250
250
  "id": "assets",
251
251
  "entityName": "assets",
252
+ "defaultListDescriptorId": "assets-main-list",
253
+ "defaultItemDescriptorId": "asset-detail-item",
252
254
  "target": "entity",
253
255
  "collectionPrefix": "assets",
254
256
  "identity": {
@@ -557,6 +559,8 @@
557
559
  "data": {
558
560
  "id": "variabilities-groups",
559
561
  "entityName": "variabilities-groups",
562
+ "defaultListDescriptorId": "variabilities-groups-main-list",
563
+ "defaultItemDescriptorId": "variabilities-group-detail-item",
560
564
  "target": "entity",
561
565
  "collectionPrefix": "variabilities-groups",
562
566
  "identity": {
@@ -881,6 +885,8 @@
881
885
  "data": {
882
886
  "id": "vulnerabilities",
883
887
  "entityName": "vulnerabilities",
888
+ "defaultListDescriptorId": "vulnerabilities-main-list",
889
+ "defaultItemDescriptorId": "vulnerability-detail-item",
884
890
  "target": "event",
885
891
  "collectionPrefix": "vulnerabilities",
886
892
  "identity": {
@@ -0,0 +1,9 @@
1
+ import type { CataloxBound } from "@x12i/catalox";
2
+ import type { CataloxLike } from "./catalox-like.js";
3
+ /**
4
+ * Wrap a {@link CataloxBound} (context already applied) as {@link CataloxLike}
5
+ * for {@link createMemorixRetrieval}. Ignores the per-call `context.appId` —
6
+ * use the bound's fixed app context when creating the bound.
7
+ */
8
+ export declare function createCataloxAdapterFromBound(bound: CataloxBound): CataloxLike;
9
+ //# sourceMappingURL=catalox-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalox-adapter.d.ts","sourceRoot":"","sources":["../../src/client/catalox-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAc3B;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAmC9E"}
@@ -0,0 +1,42 @@
1
+ function mapGetItemResult(result) {
2
+ if (result.outcome === "found") {
3
+ return { outcome: "found", item: { data: result.item.data ?? {} } };
4
+ }
5
+ if (result.outcome === "not_found") {
6
+ return { outcome: "not_found" };
7
+ }
8
+ return { outcome: "mapping_blocked" };
9
+ }
10
+ /**
11
+ * Wrap a {@link CataloxBound} (context already applied) as {@link CataloxLike}
12
+ * for {@link createMemorixRetrieval}. Ignores the per-call `context.appId` —
13
+ * use the bound's fixed app context when creating the bound.
14
+ */
15
+ export function createCataloxAdapterFromBound(bound) {
16
+ return {
17
+ async getCatalogItem(_context, catalogId, itemId) {
18
+ const result = await bound.getCatalogItem(catalogId, itemId);
19
+ return mapGetItemResult(result);
20
+ },
21
+ async listCatalogItems(_context, catalogId, options) {
22
+ const limit = Math.max(1, options?.limit ?? 200);
23
+ const list = await bound.listCatalogItems(catalogId, {
24
+ limit,
25
+ offset: options?.offset,
26
+ });
27
+ if (list.listOutcome === "mapping_blocked") {
28
+ return { items: [], hasMore: false };
29
+ }
30
+ const items = list.items.map((item) => ({
31
+ id: String(item.itemId),
32
+ data: item.data ?? {},
33
+ title: item.title,
34
+ }));
35
+ return {
36
+ items,
37
+ hasMore: Boolean(list.nextCursor) || items.length >= limit,
38
+ };
39
+ },
40
+ };
41
+ }
42
+ //# sourceMappingURL=catalox-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalox-adapter.js","sourceRoot":"","sources":["../../src/client/catalox-adapter.ts"],"names":[],"mappings":"AAOA,SAAS,gBAAgB,CACvB,MAA2D;IAE3D,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAmB;IAC/D,OAAO;QACL,KAAK,CAAC,cAAc,CAClB,QAAQ,EACR,SAAS,EACT,MAAM;YAEN,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,gBAAgB,CACpB,QAAQ,EACR,SAAS,EACT,OAAO;YAEP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE;gBACnD,KAAK;gBACL,MAAM,EAAE,OAAO,EAAE,MAAM;aACxB,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;gBAC3C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACvC,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;aAC3D,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -8,9 +8,25 @@ export type CataloxCatalogItemResult = {
8
8
  } | {
9
9
  outcome: "mapping_blocked";
10
10
  };
11
+ export type CataloxCatalogListItem = {
12
+ id: string;
13
+ data: Record<string, unknown>;
14
+ title?: string;
15
+ };
16
+ export type CataloxCatalogListResult = {
17
+ items: CataloxCatalogListItem[];
18
+ hasMore: boolean;
19
+ };
11
20
  export type CataloxLike = {
12
21
  getCatalogItem(context: {
13
22
  appId?: string;
14
23
  }, catalogId: string, itemId: string): Promise<CataloxCatalogItemResult>;
24
+ listCatalogItems?(context: {
25
+ appId?: string;
26
+ }, catalogId: string, options?: {
27
+ limit?: number;
28
+ offset?: number;
29
+ cursor?: string;
30
+ }): Promise<CataloxCatalogListResult>;
15
31
  };
16
32
  //# sourceMappingURL=catalox-like.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalox-like.d.ts","sourceRoot":"","sources":["../../src/client/catalox-like.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GAC7D;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,CACZ,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtC,CAAC"}
1
+ {"version":3,"file":"catalox-like.d.ts","sourceRoot":"","sources":["../../src/client/catalox-like.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GAC7D;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,CACZ,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,gBAAgB,CAAC,CACf,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { MEMORIX_APP_ID } from "../descriptors/catalog-ids.js";
1
+ import { resolveMemorixAppId } from "../descriptors/resolve-app-id.js";
2
2
  import { connectMemorixMongo } from "../mongo/connection.js";
3
3
  const DEFAULT_MAX_PAGE_LIMIT = 500;
4
4
  const DEFAULT_CONTENT_MAX_BYTES = 5 * 1024 * 1024;
@@ -26,7 +26,7 @@ export function createMemorixRetrieval(options) {
26
26
  }
27
27
  };
28
28
  return {
29
- appId: options.appId ?? MEMORIX_APP_ID,
29
+ appId: resolveMemorixAppId({ appId: options.appId }, processEnv),
30
30
  catalox: options.catalox,
31
31
  xronox: options.xronox,
32
32
  contentReaders: options.contentReaders,
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,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,OAAO,CAAC,KAAK,IAAI,cAAc;QACtC,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,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"}
@@ -0,0 +1,21 @@
1
+ import type { CataloxBound, CataloxContext } from "@x12i/catalox";
2
+ import type { CataloxLike, MemorixRetrievalClient } from "./types.js";
3
+ export type MemorixRetrievalStack = {
4
+ appId: string;
5
+ cataloxBound: CataloxBound;
6
+ catalox: CataloxLike;
7
+ client: MemorixRetrievalClient;
8
+ };
9
+ export type CreateMemorixRetrievalStackFromEnvOptions = {
10
+ appId?: string;
11
+ cataloxContext?: Omit<CataloxContext, "appId"> & {
12
+ appId?: string;
13
+ };
14
+ processEnv?: NodeJS.ProcessEnv;
15
+ };
16
+ /**
17
+ * One-shot wiring: Catalox from env → bound context → adapter → retrieval client.
18
+ * Use this in host apps (e.g. memorix-explorer API) to avoid duplicating Catalox setup.
19
+ */
20
+ export declare function createMemorixRetrievalStackFromEnv(options?: CreateMemorixRetrievalStackFromEnvOptions): Promise<MemorixRetrievalStack>;
21
+ //# sourceMappingURL=create-stack-from-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-stack-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-stack-from-env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIlE,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,OAAO,GAAE,yCAA8C,GACtD,OAAO,CAAC,qBAAqB,CAAC,CA2BhC"}
@@ -0,0 +1,32 @@
1
+ import { createCataloxFromEnv } from "@x12i/catalox";
2
+ import { resolveMemorixAppId } from "../descriptors/resolve-app-id.js";
3
+ import { createCataloxAdapterFromBound } from "./catalox-adapter.js";
4
+ import { createMemorixRetrievalFromEnv } from "./create-from-env.js";
5
+ /**
6
+ * One-shot wiring: Catalox from env → bound context → adapter → retrieval client.
7
+ * Use this in host apps (e.g. memorix-explorer API) to avoid duplicating Catalox setup.
8
+ */
9
+ export async function createMemorixRetrievalStackFromEnv(options = {}) {
10
+ const processEnv = options.processEnv ?? process.env;
11
+ const appId = resolveMemorixAppId({
12
+ appId: options.appId?.trim() || options.cataloxContext?.appId?.trim(),
13
+ }, processEnv);
14
+ const { catalox } = createCataloxFromEnv();
15
+ const ctx = {
16
+ ...(options.cataloxContext ?? {}),
17
+ appId,
18
+ actor: options.cataloxContext?.actor ?? {
19
+ type: "service",
20
+ id: "memorix-retrieval",
21
+ },
22
+ };
23
+ const cataloxBound = catalox.withContext(ctx);
24
+ const cataloxAdapter = createCataloxAdapterFromBound(cataloxBound);
25
+ const client = await createMemorixRetrievalFromEnv({
26
+ appId,
27
+ catalox: cataloxAdapter,
28
+ processEnv,
29
+ });
30
+ return { appId, cataloxBound, catalox: cataloxAdapter, client };
31
+ }
32
+ //# sourceMappingURL=create-stack-from-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-stack-from-env.js","sourceRoot":"","sources":["../../src/client/create-stack-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAgBrE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,UAAqD,EAAE;IAEvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IACrD,MAAM,KAAK,GAAG,mBAAmB,CAC/B;QACE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;KACtE,EACD,UAAU,CACX,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAmB;QAC1B,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QACjC,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI;YACtC,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,mBAAmB;SACxB;KACF,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC;QACjD,KAAK;QACL,OAAO,EAAE,cAAc;QACvB,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC"}
@@ -4,7 +4,7 @@ import type { createS3Client } from "@x12i/helpers/s3";
4
4
  import type { CataloxLike } from "./catalox-like.js";
5
5
  import type { XronoxLike } from "./xronox-like.js";
6
6
  import type { MemorixTarget } from "../mongo/types.js";
7
- export type { CataloxLike } from "./catalox-like.js";
7
+ export type { CataloxLike, CataloxCatalogListItem, CataloxCatalogListResult } from "./catalox-like.js";
8
8
  export type { XronoxLike, XronoxReadParams } from "./xronox-like.js";
9
9
  export type ContentReaders = {
10
10
  gcs?: ReturnType<typeof createGcsClient>;
@@ -62,6 +62,9 @@ export type FetchMemorixListRequest = {
62
62
  direction: "asc" | "desc";
63
63
  };
64
64
  filters?: Array<import("../descriptors/descriptor-types.js").MemorixFilterInput>;
65
+ /** Case-insensitive match across human-readable list fields on the driver content type. */
66
+ searchText?: string;
67
+ includeTotal?: boolean;
65
68
  includeExtensions?: string[];
66
69
  includeRelations?: string[];
67
70
  };
@@ -73,6 +76,7 @@ export type FetchMemorixListResponse = {
73
76
  offset: number;
74
77
  count: number;
75
78
  hasMore: boolean;
79
+ total?: number;
76
80
  };
77
81
  sort?: {
78
82
  property: string;
@@ -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,6 @@
1
+ export declare function resolveMemorixRecordIdFilter(recordId: string): Record<string, unknown>;
2
+ export declare function serializeMemorixDocumentForJson(doc: Record<string, unknown>): Record<string, unknown>;
3
+ export declare function escapeMongoRegex(value: string): string;
4
+ export declare function memorixLabelSearchFilter(searchText: string | undefined, fields?: readonly string[]): Record<string, unknown> | undefined;
5
+ export declare function mergeMemorixMongoFilters(...filters: Array<Record<string, unknown> | undefined>): Record<string, unknown>;
6
+ //# sourceMappingURL=record-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-id.d.ts","sourceRoot":"","sources":["../../src/data/record-id.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAiBD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,GAAE,SAAS,MAAM,EAAuC,GAC7D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAMrC;AAED,wBAAgB,wBAAwB,CACtC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,GACrD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB"}
@@ -0,0 +1,49 @@
1
+ import { ObjectId } from "mongodb";
2
+ export function resolveMemorixRecordIdFilter(recordId) {
3
+ const trimmed = recordId.trim();
4
+ if (/^[a-fA-F0-9]{24}$/.test(trimmed)) {
5
+ return { _id: new ObjectId(trimmed) };
6
+ }
7
+ return { _id: trimmed };
8
+ }
9
+ function serializeValue(value) {
10
+ if (value == null)
11
+ return value;
12
+ if (value instanceof ObjectId)
13
+ return value.toHexString();
14
+ if (value instanceof Date)
15
+ return value.toISOString();
16
+ if (Array.isArray(value))
17
+ return value.map(serializeValue);
18
+ if (typeof value === "object") {
19
+ const out = {};
20
+ for (const [k, v] of Object.entries(value)) {
21
+ out[k] = serializeValue(v);
22
+ }
23
+ return out;
24
+ }
25
+ return value;
26
+ }
27
+ export function serializeMemorixDocumentForJson(doc) {
28
+ return serializeValue(doc);
29
+ }
30
+ export function escapeMongoRegex(value) {
31
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
32
+ }
33
+ export function memorixLabelSearchFilter(searchText, fields = ["name", "title", "label", "slug"]) {
34
+ const trimmed = searchText?.trim();
35
+ if (!trimmed)
36
+ return undefined;
37
+ const rx = escapeMongoRegex(trimmed);
38
+ const or = fields.map((field) => ({ [field]: { $regex: rx, $options: "i" } }));
39
+ return or.length === 1 ? or[0] : { $or: or };
40
+ }
41
+ export function mergeMemorixMongoFilters(...filters) {
42
+ const parts = filters.filter((f) => Boolean(f) && Object.keys(f).length > 0);
43
+ if (parts.length === 0)
44
+ return {};
45
+ if (parts.length === 1)
46
+ return parts[0];
47
+ return { $and: parts };
48
+ }
49
+ //# sourceMappingURL=record-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-id.js","sourceRoot":"","sources":["../../src/data/record-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,4BAA4B,CAC1C,QAAgB;IAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAA4B;IAE5B,OAAO,cAAc,CAAC,GAAG,CAA4B,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAA8B,EAC9B,SAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IAE9D,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAG,OAAmD;IAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAgC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAC9E,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Human-readable titles for common Memorix content-type keys. */
2
+ export declare const MEMORIX_CONTENT_TYPE_LABELS: Record<string, string>;
3
+ export declare function memorixContentTypeLabel(contentType: string): string;
4
+ export declare function listEntityContentTypeKeys(entity: import("./descriptor-types.js").MemorixEntityDescriptor): string[];
5
+ /** Primary badge count slice: scoped when defined, otherwise canonical. */
6
+ export declare function primaryEntityContentType(entity: import("./descriptor-types.js").MemorixEntityDescriptor): string;
7
+ //# sourceMappingURL=content-type-labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-labels.d.ts","sourceRoot":"","sources":["../../src/descriptors/content-type-labels.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW9D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,MAAM,EAAE,CAEV;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,MAAM,CAGR"}
@@ -0,0 +1,26 @@
1
+ /** Human-readable titles for common Memorix content-type keys. */
2
+ export const MEMORIX_CONTENT_TYPE_LABELS = {
3
+ scoped: "Scoped records",
4
+ snapshots: "Snapshots",
5
+ narratives: "Narratives",
6
+ web: "Web",
7
+ "web-scoped": "Web (scoped)",
8
+ raw: "Raw",
9
+ inference: "Inference",
10
+ analytics: "Analytics",
11
+ foresights: "Foresights",
12
+ analysis: "Analysis",
13
+ };
14
+ export function memorixContentTypeLabel(contentType) {
15
+ return MEMORIX_CONTENT_TYPE_LABELS[contentType] ?? contentType;
16
+ }
17
+ export function listEntityContentTypeKeys(entity) {
18
+ return Object.keys(entity.contentTypes);
19
+ }
20
+ /** Primary badge count slice: scoped when defined, otherwise canonical. */
21
+ export function primaryEntityContentType(entity) {
22
+ if (entity.contentTypes.scoped)
23
+ return "scoped";
24
+ return entity.defaults.canonicalContentType;
25
+ }
26
+ //# sourceMappingURL=content-type-labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-labels.js","sourceRoot":"","sources":["../../src/descriptors/content-type-labels.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,YAAY,EAAE,cAAc;IAC5B,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAO,2BAA2B,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAA+D;IAE/D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CACtC,MAA+D;IAE/D,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AAC9C,CAAC"}
@@ -86,6 +86,10 @@ export type MemorixRelationDescriptor = {
86
86
  export type MemorixEntityDescriptor = {
87
87
  id: string;
88
88
  entityName: string;
89
+ /** Default list view for this entity (memorix-list-descriptors item id). */
90
+ defaultListDescriptorId: string;
91
+ /** Default record detail view (memorix-item-descriptors item id). */
92
+ defaultItemDescriptorId: string;
89
93
  /** Selects memorix-entities vs memorix-events via env (default: entity). */
90
94
  target?: "entity" | "event";
91
95
  collectionPrefix: string;
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor-types.d.ts","sourceRoot":"","sources":["../../src/descriptors/descriptor-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptor-types.d.ts","sourceRoot":"","sources":["../../src/descriptors/descriptor-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { MemorixEntityDescriptor } from "./descriptor-types.js";
3
+ import { validateMemorixEntityDescriptor } from "./validate-descriptor.js";
4
+ export type MemorixEntityDescriptorSummary = {
5
+ id: string;
6
+ entityName: string;
7
+ label: string;
8
+ defaultListDescriptorId: string;
9
+ defaultItemDescriptorId: string;
10
+ target?: "entity" | "event";
11
+ };
12
+ export type DiscoverMemorixEntitiesResult = {
13
+ summaries: MemorixEntityDescriptorSummary[];
14
+ source: "catalox" | "none";
15
+ catalogId: string;
16
+ hint?: string;
17
+ };
18
+ export declare function discoverMemorixEntities(client: MemorixRetrievalClient): Promise<DiscoverMemorixEntitiesResult>;
19
+ export declare function loadMemorixEntityDescriptorByName(client: MemorixRetrievalClient, entityName: string): Promise<MemorixEntityDescriptor>;
20
+ export declare function entityDescriptorConnections(entity: MemorixEntityDescriptor): Array<{
21
+ id: string;
22
+ targetEntityName: string;
23
+ relationType: string;
24
+ sourceProperty: string;
25
+ targetProperty: string;
26
+ }>;
27
+ export { validateMemorixEntityDescriptor };
28
+ //# sourceMappingURL=discover-entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-entities.d.ts","sourceRoot":"","sources":["../../src/descriptors/discover-entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAEL,+BAA+B,EAChC,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,8BAA8B,GAAG;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,8BAA8B,EAAE,CAAC;IAC5C,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAmCF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,6BAA6B,CAAC,CAoCxC;AAED,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAalC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,uBAAuB,GAC9B,KAAK,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAkBD;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC"}