@x12i/memorix-writer 1.0.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 (204) hide show
  1. package/README.md +145 -0
  2. package/catalox-seeds/memorix-write-descriptors.manifest.json +164 -0
  3. package/dist/client/create-client.d.ts +3 -0
  4. package/dist/client/create-client.d.ts.map +1 -0
  5. package/dist/client/create-client.js +81 -0
  6. package/dist/client/create-client.js.map +1 -0
  7. package/dist/client/create-from-env.d.ts +3 -0
  8. package/dist/client/create-from-env.d.ts.map +1 -0
  9. package/dist/client/create-from-env.js +21 -0
  10. package/dist/client/create-from-env.js.map +1 -0
  11. package/dist/client/ensure-tier.d.ts +3 -0
  12. package/dist/client/ensure-tier.d.ts.map +1 -0
  13. package/dist/client/ensure-tier.js +4 -0
  14. package/dist/client/ensure-tier.js.map +1 -0
  15. package/dist/client/types.d.ts +165 -0
  16. package/dist/client/types.d.ts.map +1 -0
  17. package/dist/client/types.js +2 -0
  18. package/dist/client/types.js.map +1 -0
  19. package/dist/constants.d.ts +13 -0
  20. package/dist/constants.d.ts.map +1 -0
  21. package/dist/constants.js +13 -0
  22. package/dist/constants.js.map +1 -0
  23. package/dist/content/compute-content-metadata.d.ts +16 -0
  24. package/dist/content/compute-content-metadata.d.ts.map +1 -0
  25. package/dist/content/compute-content-metadata.js +13 -0
  26. package/dist/content/compute-content-metadata.js.map +1 -0
  27. package/dist/content/generate-content-key.d.ts +13 -0
  28. package/dist/content/generate-content-key.d.ts.map +1 -0
  29. package/dist/content/generate-content-key.js +22 -0
  30. package/dist/content/generate-content-key.js.map +1 -0
  31. package/dist/content/generate-preview.d.ts +2 -0
  32. package/dist/content/generate-preview.d.ts.map +1 -0
  33. package/dist/content/generate-preview.js +7 -0
  34. package/dist/content/generate-preview.js.map +1 -0
  35. package/dist/content/map-content-write-errors.d.ts +3 -0
  36. package/dist/content/map-content-write-errors.d.ts.map +1 -0
  37. package/dist/content/map-content-write-errors.js +9 -0
  38. package/dist/content/map-content-write-errors.js.map +1 -0
  39. package/dist/content/resolve-content-write-config.d.ts +25 -0
  40. package/dist/content/resolve-content-write-config.d.ts.map +1 -0
  41. package/dist/content/resolve-content-write-config.js +35 -0
  42. package/dist/content/resolve-content-write-config.js.map +1 -0
  43. package/dist/content/write-content-object.d.ts +40 -0
  44. package/dist/content/write-content-object.d.ts.map +1 -0
  45. package/dist/content/write-content-object.js +117 -0
  46. package/dist/content/write-content-object.js.map +1 -0
  47. package/dist/data/collection-name.d.ts +30 -0
  48. package/dist/data/collection-name.d.ts.map +1 -0
  49. package/dist/data/collection-name.js +86 -0
  50. package/dist/data/collection-name.js.map +1 -0
  51. package/dist/data/identity.d.ts +13 -0
  52. package/dist/data/identity.d.ts.map +1 -0
  53. package/dist/data/identity.js +29 -0
  54. package/dist/data/identity.js.map +1 -0
  55. package/dist/data/memorix-write-adapter.d.ts +33 -0
  56. package/dist/data/memorix-write-adapter.d.ts.map +1 -0
  57. package/dist/data/memorix-write-adapter.js +45 -0
  58. package/dist/data/memorix-write-adapter.js.map +1 -0
  59. package/dist/descriptors/entity-descriptor-types.d.ts +59 -0
  60. package/dist/descriptors/entity-descriptor-types.d.ts.map +1 -0
  61. package/dist/descriptors/entity-descriptor-types.js +2 -0
  62. package/dist/descriptors/entity-descriptor-types.js.map +1 -0
  63. package/dist/descriptors/load-entity-descriptor.d.ts +7 -0
  64. package/dist/descriptors/load-entity-descriptor.d.ts.map +1 -0
  65. package/dist/descriptors/load-entity-descriptor.js +23 -0
  66. package/dist/descriptors/load-entity-descriptor.js.map +1 -0
  67. package/dist/descriptors/load-write-descriptor.d.ts +5 -0
  68. package/dist/descriptors/load-write-descriptor.d.ts.map +1 -0
  69. package/dist/descriptors/load-write-descriptor.js +19 -0
  70. package/dist/descriptors/load-write-descriptor.js.map +1 -0
  71. package/dist/descriptors/secret-scan.d.ts +2 -0
  72. package/dist/descriptors/secret-scan.d.ts.map +1 -0
  73. package/dist/descriptors/secret-scan.js +39 -0
  74. package/dist/descriptors/secret-scan.js.map +1 -0
  75. package/dist/descriptors/validate-write-descriptor.d.ts +4 -0
  76. package/dist/descriptors/validate-write-descriptor.d.ts.map +1 -0
  77. package/dist/descriptors/validate-write-descriptor.js +45 -0
  78. package/dist/descriptors/validate-write-descriptor.js.map +1 -0
  79. package/dist/descriptors/write-descriptor-types.d.ts +112 -0
  80. package/dist/descriptors/write-descriptor-types.d.ts.map +1 -0
  81. package/dist/descriptors/write-descriptor-types.js +2 -0
  82. package/dist/descriptors/write-descriptor-types.js.map +1 -0
  83. package/dist/errors/errors.d.ts +6 -0
  84. package/dist/errors/errors.d.ts.map +1 -0
  85. package/dist/errors/errors.js +12 -0
  86. package/dist/errors/errors.js.map +1 -0
  87. package/dist/errors/issues.d.ts +13 -0
  88. package/dist/errors/issues.d.ts.map +1 -0
  89. package/dist/errors/issues.js +9 -0
  90. package/dist/errors/issues.js.map +1 -0
  91. package/dist/index.d.ts +20 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +15 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/mongo/collection-documents.d.ts +54 -0
  96. package/dist/mongo/collection-documents.d.ts.map +1 -0
  97. package/dist/mongo/collection-documents.js +100 -0
  98. package/dist/mongo/collection-documents.js.map +1 -0
  99. package/dist/mongo/collection-name-validate.d.ts +2 -0
  100. package/dist/mongo/collection-name-validate.d.ts.map +1 -0
  101. package/dist/mongo/collection-name-validate.js +19 -0
  102. package/dist/mongo/collection-name-validate.js.map +1 -0
  103. package/dist/mongo/connection.d.ts +3 -0
  104. package/dist/mongo/connection.d.ts.map +1 -0
  105. package/dist/mongo/connection.js +8 -0
  106. package/dist/mongo/connection.js.map +1 -0
  107. package/dist/mongo/default-collections.d.ts +3 -0
  108. package/dist/mongo/default-collections.d.ts.map +1 -0
  109. package/dist/mongo/default-collections.js +14 -0
  110. package/dist/mongo/default-collections.js.map +1 -0
  111. package/dist/mongo/env.d.ts +6 -0
  112. package/dist/mongo/env.d.ts.map +1 -0
  113. package/dist/mongo/env.js +33 -0
  114. package/dist/mongo/env.js.map +1 -0
  115. package/dist/mongo/id-normalize.d.ts +3 -0
  116. package/dist/mongo/id-normalize.d.ts.map +1 -0
  117. package/dist/mongo/id-normalize.js +23 -0
  118. package/dist/mongo/id-normalize.js.map +1 -0
  119. package/dist/mongo/index.d.ts +5 -0
  120. package/dist/mongo/index.d.ts.map +1 -0
  121. package/dist/mongo/index.js +5 -0
  122. package/dist/mongo/index.js.map +1 -0
  123. package/dist/mongo/target.d.ts +4 -0
  124. package/dist/mongo/target.d.ts.map +1 -0
  125. package/dist/mongo/target.js +9 -0
  126. package/dist/mongo/target.js.map +1 -0
  127. package/dist/mongo/tier-env.d.ts +9 -0
  128. package/dist/mongo/tier-env.d.ts.map +1 -0
  129. package/dist/mongo/tier-env.js +11 -0
  130. package/dist/mongo/tier-env.js.map +1 -0
  131. package/dist/mongo/tier.d.ts +22 -0
  132. package/dist/mongo/tier.d.ts.map +1 -0
  133. package/dist/mongo/tier.js +50 -0
  134. package/dist/mongo/tier.js.map +1 -0
  135. package/dist/utils/path.d.ts +4 -0
  136. package/dist/utils/path.d.ts.map +1 -0
  137. package/dist/utils/path.js +42 -0
  138. package/dist/utils/path.js.map +1 -0
  139. package/dist/validation/validate-content.d.ts +17 -0
  140. package/dist/validation/validate-content.d.ts.map +1 -0
  141. package/dist/validation/validate-content.js +47 -0
  142. package/dist/validation/validate-content.js.map +1 -0
  143. package/dist/validation/validate-fields.d.ts +8 -0
  144. package/dist/validation/validate-fields.d.ts.map +1 -0
  145. package/dist/validation/validate-fields.js +49 -0
  146. package/dist/validation/validate-fields.js.map +1 -0
  147. package/dist/validation/validate-identity.d.ts +3 -0
  148. package/dist/validation/validate-identity.d.ts.map +1 -0
  149. package/dist/validation/validate-identity.js +2 -0
  150. package/dist/validation/validate-identity.js.map +1 -0
  151. package/dist/validation/validate-immutability.d.ts +9 -0
  152. package/dist/validation/validate-immutability.d.ts.map +1 -0
  153. package/dist/validation/validate-immutability.js +35 -0
  154. package/dist/validation/validate-immutability.js.map +1 -0
  155. package/dist/validation/validate-values.d.ts +4 -0
  156. package/dist/validation/validate-values.d.ts.map +1 -0
  157. package/dist/validation/validate-values.js +55 -0
  158. package/dist/validation/validate-values.js.map +1 -0
  159. package/dist/writer/apply-audit.d.ts +10 -0
  160. package/dist/writer/apply-audit.d.ts.map +1 -0
  161. package/dist/writer/apply-audit.js +39 -0
  162. package/dist/writer/apply-audit.js.map +1 -0
  163. package/dist/writer/apply-field-mapping.d.ts +9 -0
  164. package/dist/writer/apply-field-mapping.d.ts.map +1 -0
  165. package/dist/writer/apply-field-mapping.js +32 -0
  166. package/dist/writer/apply-field-mapping.js.map +1 -0
  167. package/dist/writer/apply-timestamps.d.ts +8 -0
  168. package/dist/writer/apply-timestamps.d.ts.map +1 -0
  169. package/dist/writer/apply-timestamps.js +12 -0
  170. package/dist/writer/apply-timestamps.js.map +1 -0
  171. package/dist/writer/build-record.d.ts +28 -0
  172. package/dist/writer/build-record.d.ts.map +1 -0
  173. package/dist/writer/build-record.js +36 -0
  174. package/dist/writer/build-record.js.map +1 -0
  175. package/dist/writer/resolve-conflict.d.ts +12 -0
  176. package/dist/writer/resolve-conflict.d.ts.map +1 -0
  177. package/dist/writer/resolve-conflict.js +32 -0
  178. package/dist/writer/resolve-conflict.js.map +1 -0
  179. package/dist/writer/resolve-idempotency.d.ts +23 -0
  180. package/dist/writer/resolve-idempotency.d.ts.map +1 -0
  181. package/dist/writer/resolve-idempotency.js +69 -0
  182. package/dist/writer/resolve-idempotency.js.map +1 -0
  183. package/dist/writer/resolve-operation.d.ts +4 -0
  184. package/dist/writer/resolve-operation.d.ts.map +1 -0
  185. package/dist/writer/resolve-operation.js +9 -0
  186. package/dist/writer/resolve-operation.js.map +1 -0
  187. package/dist/writer/resolve-write-field-target.d.ts +4 -0
  188. package/dist/writer/resolve-write-field-target.d.ts.map +1 -0
  189. package/dist/writer/resolve-write-field-target.js +7 -0
  190. package/dist/writer/resolve-write-field-target.js.map +1 -0
  191. package/dist/writer/validate-write.d.ts +3 -0
  192. package/dist/writer/validate-write.d.ts.map +1 -0
  193. package/dist/writer/validate-write.js +72 -0
  194. package/dist/writer/validate-write.js.map +1 -0
  195. package/dist/writer/write-record.d.ts +3 -0
  196. package/dist/writer/write-record.d.ts.map +1 -0
  197. package/dist/writer/write-record.js +472 -0
  198. package/dist/writer/write-record.js.map +1 -0
  199. package/dist/writer/write-records.d.ts +3 -0
  200. package/dist/writer/write-records.d.ts.map +1 -0
  201. package/dist/writer/write-records.js +79 -0
  202. package/dist/writer/write-records.js.map +1 -0
  203. package/docs/MEMORIX-DATABASE-CONVENTIONS.md +324 -0
  204. package/package.json +51 -0
package/README.md ADDED
@@ -0,0 +1,145 @@
1
+ # @x12i/memorix-writer
2
+
3
+ Descriptor-driven write layer for Memorix. Turns Catalox write descriptors, entity descriptors, validated input, and optional Markdown/text content into Memorix records and external content object pointers.
4
+
5
+ Shared MongoDB naming rules: [docs/MEMORIX-DATABASE-CONVENTIONS.md](./docs/MEMORIX-DATABASE-CONVENTIONS.md).
6
+
7
+ ## Architecture
8
+
9
+ - **Catalox** — `memorix-write-descriptors`, `memorix-entity-descriptors`
10
+ - **MongoDB** — built-in `MemorixDataTier` + collection-name CRUD (no separate `@x12i/memorix` package)
11
+ - **@x12i/memorix-descriptors** — shared catalog ids and descriptor validation (aligned with retrieval)
12
+ - **@x12i/helpers** — GCS/S3 content uploads (`contentWriters.gcs` / `contentWriters.s3`)
13
+ - **@x12i/memorix-retrieval** (optional) — `returnMode: "retrievalItem"`
14
+
15
+ ## Quick start
16
+
17
+ Set `MONGO_URI` and provide a Catalox client. Database names, entity vs event routing, and collection resolution are handled internally.
18
+
19
+ ```bash
20
+ MONGO_URI=mongodb://localhost:27017
21
+ ```
22
+
23
+ ```typescript
24
+ import {
25
+ createMemorixWriterFromEnv,
26
+ writeMemorixRecord,
27
+ } from "@x12i/memorix-writer";
28
+
29
+ const writer = await createMemorixWriterFromEnv({
30
+ catalox: boundCatalox, // must implement getCatalogItem(appId, catalogId, itemId)
31
+ contentWriters: {
32
+ gcs: myGcsUploader, // uploadObject({ key, body, contentType })
33
+ },
34
+ });
35
+
36
+ const result = await writeMemorixRecord(writer, {
37
+ writeDescriptorId: "asset-analysis-write",
38
+ entityId: "10.150.68.31",
39
+ input: { riskLevel: "HIGH", summary: "..." },
40
+ content: {
41
+ fields: {
42
+ investigationReport: { body: "# Report\n...", format: "markdown" },
43
+ },
44
+ },
45
+ });
46
+
47
+ await writer.close?.();
48
+ ```
49
+
50
+ Lazy connect (same env, no upfront `await`):
51
+
52
+ ```typescript
53
+ import { createMemorixWriter, writeMemorixRecord } from "@x12i/memorix-writer";
54
+
55
+ const writer = createMemorixWriter({ catalox: boundCatalox });
56
+ // connects to Mongo on first write using MONGO_URI
57
+ ```
58
+
59
+ ## Advanced (optional)
60
+
61
+ Override defaults only when you need to:
62
+
63
+ | Option | Purpose |
64
+ |--------|---------|
65
+ | `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` | Non-default database names |
66
+ | `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` | Per-type collection overrides |
67
+ | `memorix` | Inject a pre-configured `MemorixDataTier` instead of built-in Mongo connect |
68
+ | `mongo` | Reuse an existing `MongoClient` |
69
+ | `processEnv` | Custom env object (default: `process.env`) |
70
+
71
+ ## Collection resolution
72
+
73
+ Writes target **`memorix-entities`** or **`memorix-events`** based on the write descriptor (`target.kind`, defaulting from `identity.idField`). Database names follow [Memorix Database Conventions](./docs/MEMORIX-DATABASE-CONVENTIONS.md) (`MEMORIX_ENTITIES_DB`, `MEMORIX_EVENTS_DB`, …).
74
+
75
+ Collection name resolution order:
76
+
77
+ 1. Explicit override (API/code parameter)
78
+ 2. Write descriptor `target.targetCollection`
79
+ 3. Entity descriptor content type `collection`
80
+ 4. `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` env vars
81
+ 5. Write descriptor `target.targetCollectionCandidates`
82
+ 6. Content-type slice `{collectionPrefix}-{postfix}` (e.g. `assets-analysis`)
83
+ 7. Built-in defaults for known `entityType` values
84
+ 8. Heuristic (`<entityType>` or `<entityType>-events`)
85
+ 9. Verify the collection exists in the target database (skipped for `dryRun` / `validateOnly`)
86
+
87
+ For content-type slices, step 6 runs before canonical entity defaults so `assets` + `analysis` still resolves to `assets-analysis` unless overridden explicitly.
88
+
89
+ ## Operations
90
+
91
+ | Operation | Default | Notes |
92
+ |-----------|---------|--------|
93
+ | `add` | yes | Always inserts a new record |
94
+ | `upsert` | descriptor-gated | Requires `conflict.matchBy` |
95
+ | `patch` | descriptor-gated | Updates writable fields on existing row |
96
+ | `replace` | descriptor-gated | Full replace |
97
+
98
+ ## Catalox seeds
99
+
100
+ Validate the example write descriptor seed:
101
+
102
+ ```bash
103
+ npm run catalox:seed:write-descriptors:validate
104
+ ```
105
+
106
+ Seed file: [`catalox-seeds/memorix-write-descriptors.manifest.json`](catalox-seeds/memorix-write-descriptors.manifest.json)
107
+
108
+ ## Acceptance criteria
109
+
110
+ | ID | Status |
111
+ |----|--------|
112
+ | AC-1 | Generic descriptor-driven write |
113
+ | AC-2 | Prefix/postfix collection resolution |
114
+ | AC-3 | Identity: exactly one of `entityId` / `eventId` |
115
+ | AC-4 | Default operation `add` |
116
+ | AC-5 | Upsert only when allowed |
117
+ | AC-6 | Patch only when allowed |
118
+ | AC-7 | Writable field allowlist / unknown fields |
119
+ | AC-8 | Required fields |
120
+ | AC-9 | Content body → object storage + pointer |
121
+ | AC-10 | Existing content pointer |
122
+ | AC-11 | Content maxBytes |
123
+ | AC-12 | No secrets in descriptors |
124
+ | AC-13 | Idempotency |
125
+ | AC-14 | `dryRun` |
126
+ | AC-15 | `validateOnly` |
127
+ | AC-16 | Retrieval delegated when configured |
128
+
129
+ ## Development
130
+
131
+ ```bash
132
+ npm run build
133
+ npm test
134
+ ```
135
+
136
+ Mongo collection I/O is built in (`insertMemorixCollectionDocument`, etc. under `src/mongo/`).
137
+
138
+ ## Publish
139
+
140
+ ```bash
141
+ npm run build
142
+ npm publish --access public
143
+ ```
144
+
145
+ Or from the x12i workspace root: `./scripts/publish-memorix-packages.sh`
@@ -0,0 +1,164 @@
1
+ {
2
+ "presetVersion": 1,
3
+ "id": "memorix-write-descriptors",
4
+ "name": "Memorix write descriptors",
5
+ "description": "Write descriptors for @x12i/memorix-writer (example: asset analysis write).",
6
+ "catalogs": [
7
+ {
8
+ "catalogId": "memorix-write-descriptors",
9
+ "name": "Memorix write descriptors",
10
+ "catalogType": "memorix",
11
+ "sourceMode": "native",
12
+ "native": {
13
+ "itemIdField": "id",
14
+ "titleField": "title"
15
+ }
16
+ }
17
+ ],
18
+ "descriptors": [
19
+ {
20
+ "catalogId": "memorix-write-descriptors",
21
+ "descriptorVersion": "1",
22
+ "mode": "replace",
23
+ "descriptor": {
24
+ "catalogId": "memorix-write-descriptors",
25
+ "label": "Memorix write descriptors",
26
+ "sourceMode": "native",
27
+ "status": "active",
28
+ "capabilities": {
29
+ "canList": true,
30
+ "canGet": true,
31
+ "canCreate": true,
32
+ "canEdit": true,
33
+ "canDelete": true,
34
+ "canImport": true,
35
+ "canExport": true,
36
+ "canSync": false,
37
+ "canValidate": true,
38
+ "canViewReferences": true
39
+ },
40
+ "queryableFields": [
41
+ {
42
+ "key": "id",
43
+ "label": "Id",
44
+ "type": "string",
45
+ "indexed": true,
46
+ "filterable": true,
47
+ "listVisible": true,
48
+ "detailVisible": true
49
+ },
50
+ {
51
+ "key": "entity",
52
+ "label": "Entity",
53
+ "type": "string",
54
+ "indexed": true,
55
+ "filterable": true,
56
+ "listVisible": true,
57
+ "detailVisible": true
58
+ },
59
+ {
60
+ "key": "title",
61
+ "label": "Title",
62
+ "type": "string",
63
+ "indexed": true,
64
+ "filterable": true,
65
+ "listVisible": true,
66
+ "detailVisible": true
67
+ }
68
+ ],
69
+ "identity": {
70
+ "itemIdStrategy": "natural",
71
+ "itemIdField": "id",
72
+ "titleField": "title"
73
+ }
74
+ }
75
+ }
76
+ ],
77
+ "bindings": [
78
+ {
79
+ "appId": "memorix",
80
+ "catalogId": "memorix-write-descriptors",
81
+ "access": {
82
+ "canRead": true,
83
+ "canWrite": true
84
+ }
85
+ }
86
+ ],
87
+ "items": [
88
+ {
89
+ "catalogId": "memorix-write-descriptors",
90
+ "data": {
91
+ "id": "asset-analysis-write",
92
+ "entity": "assets",
93
+ "title": "Write Asset Analysis",
94
+ "target": { "contentType": "analysis" },
95
+ "identity": {
96
+ "idField": "entityId",
97
+ "requireExistingCanonical": true,
98
+ "createCanonicalIfMissing": false
99
+ },
100
+ "operations": {
101
+ "allowed": ["add"],
102
+ "default": "add"
103
+ },
104
+ "fields": {
105
+ "riskLevel": {
106
+ "label": "Risk Level",
107
+ "inputPath": "riskLevel",
108
+ "target": { "path": "data.riskLevel" },
109
+ "required": true,
110
+ "writable": true,
111
+ "valueType": "enum",
112
+ "enumValues": ["LOW", "MEDIUM", "HIGH", "CRITICAL"]
113
+ },
114
+ "summary": {
115
+ "label": "Summary",
116
+ "inputPath": "summary",
117
+ "target": { "path": "data.summary" },
118
+ "writable": true,
119
+ "valueType": "string"
120
+ },
121
+ "investigationReport": {
122
+ "label": "Investigation Report",
123
+ "inputPath": "investigationReport",
124
+ "target": { "path": "data.investigationReport" },
125
+ "writable": true,
126
+ "valueType": "content",
127
+ "content": {
128
+ "enabled": true,
129
+ "objectType": "memorix-content-object",
130
+ "acceptBody": true,
131
+ "acceptPointer": true,
132
+ "format": "markdown",
133
+ "maxBytes": 5242880,
134
+ "contentKeyTemplate": "{{entity}}/{{contentType}}/{{entityId}}/{{recordId}}/{{field}}.md",
135
+ "generatePreview": true,
136
+ "previewMaxChars": 500,
137
+ "computeMetadata": true,
138
+ "storage": {
139
+ "provider": "gcs",
140
+ "bucket": "memorix-content",
141
+ "prefix": "assets"
142
+ }
143
+ }
144
+ }
145
+ },
146
+ "content": {
147
+ "allowed": true,
148
+ "allowedFields": ["investigationReport"],
149
+ "generatePreview": true,
150
+ "previewMaxChars": 500,
151
+ "computeMetadata": true,
152
+ "maxBytes": 5242880
153
+ },
154
+ "validation": {
155
+ "rejectUnknownFields": true,
156
+ "requireAtLeastOneWritableField": true
157
+ },
158
+ "return": {
159
+ "defaultMode": "summary"
160
+ }
161
+ }
162
+ }
163
+ ]
164
+ }
@@ -0,0 +1,3 @@
1
+ import type { CreateMemorixWriterOptions, MemorixWriterClient } from "./types.js";
2
+ export declare function createMemorixWriter(options: CreateMemorixWriterOptions): MemorixWriterClient;
3
+ //# sourceMappingURL=create-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAsEpB,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,CAyBrB"}
@@ -0,0 +1,81 @@
1
+ import { createMemorixDataTier, } from "../mongo/tier.js";
2
+ import { DEFAULT_CANONICAL_CONTENT_TYPE, DEFAULT_CONTENT_KEY_TEMPLATE, DEFAULT_CONTENT_MAX_BYTES, DEFAULT_DATA_ROOT, DEFAULT_EFFECTIVE_DATE_PATH, DEFAULT_MEMORIX_APP_ID, DEFAULT_MEMORIX_METADATA_PATH, } from "../constants.js";
3
+ import { connectMemorixMongo } from "../mongo/connection.js";
4
+ import { resolveMemorixDbName } from "../mongo/env.js";
5
+ function resolveDefaults(partial) {
6
+ return {
7
+ canonicalContentType: partial?.canonicalContentType ?? DEFAULT_CANONICAL_CONTENT_TYPE,
8
+ dataRoot: partial?.dataRoot ?? DEFAULT_DATA_ROOT,
9
+ effectiveDatePath: partial?.effectiveDatePath ?? DEFAULT_EFFECTIVE_DATE_PATH,
10
+ contentMaxBytes: partial?.contentMaxBytes ?? DEFAULT_CONTENT_MAX_BYTES,
11
+ packageMaxContentBytes: partial?.packageMaxContentBytes,
12
+ defaultWriteMode: partial?.defaultWriteMode ?? "add",
13
+ defaultConflictBehavior: partial?.defaultConflictBehavior ?? "fail",
14
+ defaultReturnMode: partial?.defaultReturnMode ?? "summary",
15
+ contentKeyTemplate: partial?.contentKeyTemplate ?? DEFAULT_CONTENT_KEY_TEMPLATE,
16
+ memorixMetadataPath: partial?.memorixMetadataPath ?? DEFAULT_MEMORIX_METADATA_PATH,
17
+ };
18
+ }
19
+ function createLazyMemorixTierAccess(args) {
20
+ let tier = args.memorix ?? null;
21
+ let ownedMongo = !args.memorix && !args.mongo;
22
+ let mongoClient = args.mongo ?? null;
23
+ let tierConnect = null;
24
+ const getMemorixTier = async () => {
25
+ if (tier?.memorixReady)
26
+ return tier;
27
+ if (!tierConnect) {
28
+ tierConnect = (async () => {
29
+ if (!mongoClient) {
30
+ mongoClient = await connectMemorixMongo(args.processEnv);
31
+ }
32
+ const nextTier = createMemorixDataTier({
33
+ memorixDb: resolveMemorixDbName("entity", args.processEnv),
34
+ processEnv: args.processEnv,
35
+ client: mongoClient,
36
+ });
37
+ await nextTier.init();
38
+ tier = nextTier;
39
+ return nextTier;
40
+ })();
41
+ }
42
+ return tierConnect;
43
+ };
44
+ const close = async () => {
45
+ if (tier) {
46
+ await tier.close();
47
+ tier = null;
48
+ tierConnect = null;
49
+ }
50
+ if (ownedMongo && mongoClient) {
51
+ await mongoClient.close();
52
+ mongoClient = null;
53
+ }
54
+ };
55
+ return { getMemorixTier, close };
56
+ }
57
+ export function createMemorixWriter(options) {
58
+ if (!options.catalox) {
59
+ throw new Error("MemorixWriter: catalox client is required");
60
+ }
61
+ const processEnv = options.processEnv ?? process.env;
62
+ const tierAccess = createLazyMemorixTierAccess({
63
+ memorix: options.memorix,
64
+ mongo: options.mongo,
65
+ processEnv,
66
+ });
67
+ return {
68
+ appId: options.appId ?? DEFAULT_MEMORIX_APP_ID,
69
+ catalox: options.catalox,
70
+ memorix: options.memorix,
71
+ retrieval: options.retrieval,
72
+ contentWriters: options.contentWriters ?? {},
73
+ defaults: resolveDefaults(options.defaults),
74
+ getMemorixTier: async () => {
75
+ const tier = await tierAccess.getMemorixTier();
76
+ return tier;
77
+ },
78
+ close: tierAccess.close,
79
+ };
80
+ }
81
+ //# sourceMappingURL=create-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CreateMemorixWriterFromEnvOptions, MemorixWriterClient } from "./types.js";
2
+ export declare function createMemorixWriterFromEnv(options: CreateMemorixWriterFromEnvOptions): Promise<MemorixWriterClient>;
3
+ //# sourceMappingURL=create-from-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iCAAiC,EACjC,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,mBAAmB,CAAC,CAgB9B"}
@@ -0,0 +1,21 @@
1
+ import { createMemorixDataTier } from "../mongo/tier.js";
2
+ import { connectMemorixMongo } from "../mongo/connection.js";
3
+ import { resolveMemorixDbName } from "../mongo/env.js";
4
+ import { createMemorixWriter } from "./create-client.js";
5
+ export async function createMemorixWriterFromEnv(options) {
6
+ const processEnv = options.processEnv ?? process.env;
7
+ const mongo = options.mongo ?? (await connectMemorixMongo(processEnv));
8
+ const tier = createMemorixDataTier({
9
+ memorixDb: resolveMemorixDbName("entity", processEnv),
10
+ processEnv,
11
+ client: mongo,
12
+ });
13
+ await tier.init();
14
+ return createMemorixWriter({
15
+ ...options,
16
+ memorix: tier,
17
+ processEnv,
18
+ mongo,
19
+ });
20
+ }
21
+ //# sourceMappingURL=create-from-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-from-env.js","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAMzD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA0C;IAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IACrD,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,qBAAqB,CAAC;QACjC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC;QACrD,UAAU;QACV,MAAM,EAAE,KAAc;KACvB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,mBAAmB,CAAC;QACzB,GAAG,OAAO;QACV,OAAO,EAAE,IAAI;QACb,UAAU;QACV,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MemorixWriterClient } from "./types.js";
2
+ export declare function getWriterMemorixTier(client: MemorixWriterClient): Promise<import("../mongo/tier.js").MemorixDataTier>;
3
+ //# sourceMappingURL=ensure-tier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-tier.d.ts","sourceRoot":"","sources":["../../src/client/ensure-tier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,uDAErE"}
@@ -0,0 +1,4 @@
1
+ export async function getWriterMemorixTier(client) {
2
+ return client.getMemorixTier();
3
+ }
4
+ //# sourceMappingURL=ensure-tier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-tier.js","sourceRoot":"","sources":["../../src/client/ensure-tier.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA2B;IACpE,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,165 @@
1
+ import type { MongoClient } from "mongodb";
2
+ import type { MemorixDataTier } from "../mongo/tier.js";
3
+ import type { MemorixContentObject } from "../descriptors/entity-descriptor-types.js";
4
+ import type { MemorixWriteIssue } from "../errors/issues.js";
5
+ export type CataloxLike = {
6
+ getCatalogItem(appId: string, catalogId: string, itemId: string): Promise<{
7
+ data: Record<string, unknown>;
8
+ } | null>;
9
+ };
10
+ export type MemorixObjectWriterLike = {
11
+ uploadObject(args: {
12
+ key: string;
13
+ body: string | Uint8Array;
14
+ contentType?: string;
15
+ }): Promise<void>;
16
+ deleteObject?(args: {
17
+ key: string;
18
+ }): Promise<void>;
19
+ };
20
+ export type MemorixContentWriterRegistry = {
21
+ gcs?: MemorixObjectWriterLike;
22
+ s3?: MemorixObjectWriterLike;
23
+ };
24
+ export type MemorixRetrievalClient = {
25
+ fetchMemorixItem(args: {
26
+ itemDescriptorId: string;
27
+ entityId?: string;
28
+ eventId?: string;
29
+ recordId?: string;
30
+ }): Promise<Record<string, unknown>>;
31
+ };
32
+ export type MemorixWriterDefaults = {
33
+ canonicalContentType: string;
34
+ dataRoot: string;
35
+ effectiveDatePath: string;
36
+ contentMaxBytes: number;
37
+ packageMaxContentBytes?: number;
38
+ defaultWriteMode: "add" | "upsert" | "patch" | "replace";
39
+ defaultConflictBehavior: "fail" | "skip" | "append";
40
+ defaultReturnMode: "summary" | "record" | "retrievalItem";
41
+ contentKeyTemplate: string;
42
+ memorixMetadataPath: string;
43
+ };
44
+ export type CreateMemorixWriterOptions = {
45
+ appId?: string;
46
+ catalox: CataloxLike;
47
+ /** Advanced: inject Memorix tier. Omit to connect from `MONGO_URI` on first write. */
48
+ memorix?: MemorixDataTier;
49
+ /** Advanced: reuse an existing MongoClient (simple mode lazy/eager connect). */
50
+ mongo?: MongoClient;
51
+ processEnv?: NodeJS.ProcessEnv;
52
+ retrieval?: MemorixRetrievalClient;
53
+ contentWriters?: MemorixContentWriterRegistry;
54
+ defaults?: Partial<MemorixWriterDefaults>;
55
+ };
56
+ export type CreateMemorixWriterFromEnvOptions = Omit<CreateMemorixWriterOptions, "memorix">;
57
+ export type MemorixWriterClient = {
58
+ appId: string;
59
+ catalox: CataloxLike;
60
+ /** Resolved tier (available after `getMemorixTier()` or first write). */
61
+ memorix?: MemorixDataTier;
62
+ retrieval?: MemorixRetrievalClient;
63
+ contentWriters: MemorixContentWriterRegistry;
64
+ defaults: MemorixWriterDefaults;
65
+ /** Internal: lazy Mongo tier from env (simple mode). */
66
+ getMemorixTier: () => Promise<MemorixDataTier>;
67
+ close?: () => Promise<void>;
68
+ };
69
+ export type WriteMemorixRecordRequest = {
70
+ writeDescriptorId: string;
71
+ operation?: "add" | "upsert" | "patch" | "replace";
72
+ entityId?: string;
73
+ eventId?: string;
74
+ input: Record<string, unknown>;
75
+ content?: {
76
+ fields?: Record<string, {
77
+ body: string;
78
+ format?: "markdown" | "text";
79
+ filename?: string;
80
+ metadata?: Record<string, unknown>;
81
+ } | MemorixContentObject>;
82
+ };
83
+ source?: {
84
+ system?: string;
85
+ connector?: string;
86
+ runId?: string;
87
+ jobId?: string;
88
+ recordId?: string;
89
+ };
90
+ actor?: {
91
+ type: "user" | "service" | "agent" | "system";
92
+ id?: string;
93
+ name?: string;
94
+ };
95
+ options?: {
96
+ dryRun?: boolean;
97
+ validateOnly?: boolean;
98
+ idempotencyKey?: string;
99
+ correlationId?: string;
100
+ returnMode?: "summary" | "record" | "retrievalItem";
101
+ };
102
+ };
103
+ export type WriteMemorixRecordResponse = {
104
+ ok: boolean;
105
+ writeDescriptorId: string;
106
+ entity: string;
107
+ contentType: string;
108
+ collection: string;
109
+ operation: "add" | "upsert" | "patch" | "replace";
110
+ action: "inserted" | "updated" | "patched" | "replaced" | "skipped" | "deduplicated" | "validated";
111
+ entityId?: string;
112
+ eventId?: string;
113
+ recordId?: string;
114
+ idempotencyKey?: string;
115
+ writtenAt?: string;
116
+ contentObjects?: Record<string, {
117
+ contentKey: string;
118
+ sizeBytes?: number;
119
+ format?: "markdown" | "text";
120
+ written: boolean;
121
+ }>;
122
+ record?: Record<string, unknown>;
123
+ retrievalItem?: Record<string, unknown>;
124
+ issues?: MemorixWriteIssue[];
125
+ };
126
+ export type WriteMemorixRecordsRequest = {
127
+ writeDescriptorId: string;
128
+ operation?: "add" | "upsert" | "patch" | "replace";
129
+ records: Array<{
130
+ entityId?: string;
131
+ eventId?: string;
132
+ input: Record<string, unknown>;
133
+ content?: WriteMemorixRecordRequest["content"];
134
+ source?: WriteMemorixRecordRequest["source"];
135
+ actor?: WriteMemorixRecordRequest["actor"];
136
+ options?: Pick<NonNullable<WriteMemorixRecordRequest["options"]>, "idempotencyKey" | "correlationId">;
137
+ }>;
138
+ options?: {
139
+ dryRun?: boolean;
140
+ validateOnly?: boolean;
141
+ continueOnError?: boolean;
142
+ returnMode?: "summary" | "record";
143
+ };
144
+ };
145
+ export type WriteMemorixRecordsResponse = {
146
+ ok: boolean;
147
+ writeDescriptorId: string;
148
+ entity: string;
149
+ contentType: string;
150
+ count: {
151
+ requested: number;
152
+ inserted: number;
153
+ updated: number;
154
+ skipped: number;
155
+ failed: number;
156
+ };
157
+ results: WriteMemorixRecordResponse[];
158
+ issues?: MemorixWriteIssue[];
159
+ };
160
+ export type ValidateMemorixWriteResponse = {
161
+ ok: boolean;
162
+ issues?: MemorixWriteIssue[];
163
+ plannedRecord?: Record<string, unknown>;
164
+ };
165
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export declare const DEFAULT_MEMORIX_APP_ID = "memorix";
2
+ export declare const MEMORIX_WRITE_DESCRIPTORS_CATALOG_ID = "memorix-write-descriptors";
3
+ export declare const MEMORIX_ENTITY_DESCRIPTORS_CATALOG_ID = "memorix-entity-descriptors";
4
+ export declare const DEFAULT_CANONICAL_CONTENT_TYPE = "snapshots";
5
+ export declare const DEFAULT_DATA_ROOT = "data";
6
+ export declare const DEFAULT_EFFECTIVE_DATE_PATH = "modifiedAt";
7
+ export declare const DEFAULT_CONTENT_MAX_BYTES: number;
8
+ export declare const DEFAULT_MEMORIX_METADATA_PATH = "_memorix";
9
+ export declare const DEFAULT_AUDIT_PATH = "_memorix.audit";
10
+ export declare const DEFAULT_IDEMPOTENCY_KEY_PATH = "_memorix.idempotencyKey";
11
+ export declare const DEFAULT_PAYLOAD_HASH_PATH = "_memorix.payloadHash";
12
+ export declare const DEFAULT_CONTENT_KEY_TEMPLATE = "{{entity}}/{{contentType}}/{{id}}/{{recordId}}/{{field}}.md";
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,eAAO,MAAM,oCAAoC,8BAA8B,CAAC;AAChF,eAAO,MAAM,qCAAqC,+BAA+B,CAAC;AAElF,eAAO,MAAM,8BAA8B,cAAc,CAAC;AAC1D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AACzD,eAAO,MAAM,6BAA6B,aAAa,CAAC;AACxD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,gEACsB,CAAC"}