@x12i/memorix-service 3.12.4 → 3.14.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 (171) hide show
  1. package/README.md +1 -1
  2. package/dist/analytics/host.d.ts +2 -2
  3. package/dist/analytics/host.d.ts.map +1 -1
  4. package/dist/analytics/host.js.map +1 -1
  5. package/dist/analytics/read-row.d.ts +33 -0
  6. package/dist/analytics/read-row.d.ts.map +1 -0
  7. package/dist/analytics/read-row.js +76 -0
  8. package/dist/analytics/read-row.js.map +1 -0
  9. package/dist/analytics/tracker.d.ts +14 -0
  10. package/dist/analytics/tracker.d.ts.map +1 -1
  11. package/dist/analytics/tracker.js +55 -17
  12. package/dist/analytics/tracker.js.map +1 -1
  13. package/dist/anomaly/catalog.d.ts +4 -0
  14. package/dist/anomaly/catalog.d.ts.map +1 -0
  15. package/dist/anomaly/catalog.js +315 -0
  16. package/dist/anomaly/catalog.js.map +1 -0
  17. package/dist/anomaly/descriptors.d.ts +11 -0
  18. package/dist/anomaly/descriptors.d.ts.map +1 -0
  19. package/dist/anomaly/descriptors.js +113 -0
  20. package/dist/anomaly/descriptors.js.map +1 -0
  21. package/dist/anomaly/index.d.ts +6 -0
  22. package/dist/anomaly/index.d.ts.map +1 -0
  23. package/dist/anomaly/index.js +5 -0
  24. package/dist/anomaly/index.js.map +1 -0
  25. package/dist/anomaly/records.d.ts +28 -0
  26. package/dist/anomaly/records.d.ts.map +1 -0
  27. package/dist/anomaly/records.js +384 -0
  28. package/dist/anomaly/records.js.map +1 -0
  29. package/dist/anomaly/types.d.ts +116 -0
  30. package/dist/anomaly/types.d.ts.map +1 -0
  31. package/dist/anomaly/types.js +24 -0
  32. package/dist/anomaly/types.js.map +1 -0
  33. package/dist/anomaly/values.d.ts +31 -0
  34. package/dist/anomaly/values.d.ts.map +1 -0
  35. package/dist/anomaly/values.js +171 -0
  36. package/dist/anomaly/values.js.map +1 -0
  37. package/dist/app.d.ts.map +1 -1
  38. package/dist/app.js +12 -0
  39. package/dist/app.js.map +1 -1
  40. package/dist/catalog-bridge.d.ts +21 -3
  41. package/dist/catalog-bridge.d.ts.map +1 -1
  42. package/dist/catalog-bridge.js +148 -34
  43. package/dist/catalog-bridge.js.map +1 -1
  44. package/dist/errors.d.ts +5 -0
  45. package/dist/errors.d.ts.map +1 -1
  46. package/dist/errors.js +18 -0
  47. package/dist/errors.js.map +1 -1
  48. package/dist/knowledge-upstream.d.ts +32 -0
  49. package/dist/knowledge-upstream.d.ts.map +1 -1
  50. package/dist/knowledge-upstream.js +86 -2
  51. package/dist/knowledge-upstream.js.map +1 -1
  52. package/dist/mcp/nexum-tools.d.ts +1 -1
  53. package/dist/mcp/nexum-tools.d.ts.map +1 -1
  54. package/dist/mcp/nexum-tools.js +39 -22
  55. package/dist/mcp/nexum-tools.js.map +1 -1
  56. package/dist/metadata-view.d.ts +30 -0
  57. package/dist/metadata-view.d.ts.map +1 -0
  58. package/dist/metadata-view.js +67 -0
  59. package/dist/metadata-view.js.map +1 -0
  60. package/dist/nexum-analysis/enqueue.d.ts +1 -1
  61. package/dist/nexum-analysis/enqueue.d.ts.map +1 -1
  62. package/dist/nexum-analysis/enqueue.js +4 -2
  63. package/dist/nexum-analysis/enqueue.js.map +1 -1
  64. package/dist/nexum-analysis/knowledge-read.d.ts +45 -0
  65. package/dist/nexum-analysis/knowledge-read.d.ts.map +1 -0
  66. package/dist/nexum-analysis/knowledge-read.js +26 -0
  67. package/dist/nexum-analysis/knowledge-read.js.map +1 -0
  68. package/dist/openapi/openapi.json +18458 -17718
  69. package/dist/patches/access.d.ts +15 -0
  70. package/dist/patches/access.d.ts.map +1 -0
  71. package/dist/patches/access.js +27 -0
  72. package/dist/patches/access.js.map +1 -0
  73. package/dist/patches/engine.d.ts +67 -0
  74. package/dist/patches/engine.d.ts.map +1 -0
  75. package/dist/patches/engine.js +966 -0
  76. package/dist/patches/engine.js.map +1 -0
  77. package/dist/patches/guards.d.ts +23 -0
  78. package/dist/patches/guards.d.ts.map +1 -0
  79. package/dist/patches/guards.js +77 -0
  80. package/dist/patches/guards.js.map +1 -0
  81. package/dist/patches/legacy-rows.d.ts +56 -0
  82. package/dist/patches/legacy-rows.d.ts.map +1 -0
  83. package/dist/patches/legacy-rows.js +162 -0
  84. package/dist/patches/legacy-rows.js.map +1 -0
  85. package/dist/patches/ops.d.ts +24 -0
  86. package/dist/patches/ops.d.ts.map +1 -0
  87. package/dist/patches/ops.js +204 -0
  88. package/dist/patches/ops.js.map +1 -0
  89. package/dist/patches/parse.d.ts +5 -0
  90. package/dist/patches/parse.d.ts.map +1 -0
  91. package/dist/patches/parse.js +323 -0
  92. package/dist/patches/parse.js.map +1 -0
  93. package/dist/patches/paths.d.ts +38 -0
  94. package/dist/patches/paths.d.ts.map +1 -0
  95. package/dist/patches/paths.js +204 -0
  96. package/dist/patches/paths.js.map +1 -0
  97. package/dist/patches/service.d.ts +16 -0
  98. package/dist/patches/service.d.ts.map +1 -0
  99. package/dist/patches/service.js +128 -0
  100. package/dist/patches/service.js.map +1 -0
  101. package/dist/patches/store.d.ts +87 -0
  102. package/dist/patches/store.d.ts.map +1 -0
  103. package/dist/patches/store.js +27 -0
  104. package/dist/patches/store.js.map +1 -0
  105. package/dist/patches/types.d.ts +112 -0
  106. package/dist/patches/types.d.ts.map +1 -0
  107. package/dist/patches/types.js +5 -0
  108. package/dist/patches/types.js.map +1 -0
  109. package/dist/platform.d.ts +15 -0
  110. package/dist/platform.d.ts.map +1 -1
  111. package/dist/platform.js +141 -8
  112. package/dist/platform.js.map +1 -1
  113. package/dist/routes/anomaly.d.ts +5 -0
  114. package/dist/routes/anomaly.d.ts.map +1 -0
  115. package/dist/routes/anomaly.js +308 -0
  116. package/dist/routes/anomaly.js.map +1 -0
  117. package/dist/routes/data.d.ts.map +1 -1
  118. package/dist/routes/data.js +297 -198
  119. package/dist/routes/data.js.map +1 -1
  120. package/dist/routes/knowledge.d.ts.map +1 -1
  121. package/dist/routes/knowledge.js +6 -22
  122. package/dist/routes/knowledge.js.map +1 -1
  123. package/dist/routes/metadata.d.ts.map +1 -1
  124. package/dist/routes/metadata.js +28 -1
  125. package/dist/routes/metadata.js.map +1 -1
  126. package/dist/routes/patches.d.ts +7 -0
  127. package/dist/routes/patches.d.ts.map +1 -0
  128. package/dist/routes/patches.js +111 -0
  129. package/dist/routes/patches.js.map +1 -0
  130. package/dist/routes/subject-roots-backfill.d.ts +4 -0
  131. package/dist/routes/subject-roots-backfill.d.ts.map +1 -0
  132. package/dist/routes/subject-roots-backfill.js +15 -0
  133. package/dist/routes/subject-roots-backfill.js.map +1 -0
  134. package/dist/single-read-discriminator.d.ts +17 -0
  135. package/dist/single-read-discriminator.d.ts.map +1 -0
  136. package/dist/single-read-discriminator.js +67 -0
  137. package/dist/single-read-discriminator.js.map +1 -0
  138. package/dist/subject-roots-backfill.d.ts +24 -0
  139. package/dist/subject-roots-backfill.d.ts.map +1 -0
  140. package/dist/subject-roots-backfill.js +133 -0
  141. package/dist/subject-roots-backfill.js.map +1 -0
  142. package/dist/write-precondition.d.ts +5 -1
  143. package/dist/write-precondition.d.ts.map +1 -1
  144. package/dist/write-precondition.js +11 -3
  145. package/dist/write-precondition.js.map +1 -1
  146. package/dist/writes/content-write.d.ts +207 -0
  147. package/dist/writes/content-write.d.ts.map +1 -0
  148. package/dist/writes/content-write.js +629 -0
  149. package/dist/writes/content-write.js.map +1 -0
  150. package/dist/writes/effects.d.ts +13 -0
  151. package/dist/writes/effects.d.ts.map +1 -0
  152. package/dist/writes/effects.js +28 -0
  153. package/dist/writes/effects.js.map +1 -0
  154. package/dist/writes/error-shape.d.ts +11 -0
  155. package/dist/writes/error-shape.d.ts.map +1 -0
  156. package/dist/writes/error-shape.js +107 -0
  157. package/dist/writes/error-shape.js.map +1 -0
  158. package/dist/writes/queued-write.d.ts +38 -0
  159. package/dist/writes/queued-write.d.ts.map +1 -0
  160. package/dist/writes/queued-write.js +288 -0
  161. package/dist/writes/queued-write.js.map +1 -0
  162. package/dist/writes/receipt-store.d.ts +131 -0
  163. package/dist/writes/receipt-store.d.ts.map +1 -0
  164. package/dist/writes/receipt-store.js +360 -0
  165. package/dist/writes/receipt-store.js.map +1 -0
  166. package/dist/writes/worker.d.ts +30 -0
  167. package/dist/writes/worker.d.ts.map +1 -0
  168. package/dist/writes/worker.js +100 -0
  169. package/dist/writes/worker.js.map +1 -0
  170. package/openapi/openapi.json +18458 -17718
  171. package/package.json +4 -4
@@ -0,0 +1,207 @@
1
+ import { type DatasourceWriteInput, type LogicalV2Record, type MemorixRecordDraft, type WriterMetadataCatalog } from "@x12i/memorix-data";
2
+ import { ServiceError } from "../errors.js";
3
+ import type { MemorixScope } from "../scope.js";
4
+ import { type FailureShape } from "./error-shape.js";
5
+ import { type ReceiptError, type StoredContentWrite, type WriteOperation, type WriteReceipt, type WriteReceiptRow, type WriteReceiptStore } from "./receipt-store.js";
6
+ export declare const CONTENT_BATCH_LIMIT = 500;
7
+ export type ContentWriteBody = {
8
+ objectType?: string;
9
+ contentType?: string;
10
+ record?: Record<string, unknown>;
11
+ precondition?: unknown;
12
+ expectedRevision?: number;
13
+ op?: "add" | "upsert" | "patch" | "replace" | "remove";
14
+ patch?: unknown;
15
+ datasource?: unknown;
16
+ suppressHooks?: unknown;
17
+ discriminatorValue?: string;
18
+ writeId?: unknown;
19
+ subject?: unknown;
20
+ /** `true` accepts the row into the durable queue and returns before the document is written. */
21
+ queue?: unknown;
22
+ };
23
+ export type ContentWritePorts = {
24
+ writer: {
25
+ add(req: {
26
+ scope: MemorixScope;
27
+ precondition: {
28
+ kind: "absent";
29
+ };
30
+ record: MemorixRecordDraft;
31
+ datasource?: DatasourceWriteInput;
32
+ suppressHooks?: boolean;
33
+ }): Promise<{
34
+ record: LogicalV2Record;
35
+ created: boolean;
36
+ unchanged?: boolean;
37
+ }>;
38
+ upsert(req: {
39
+ scope: MemorixScope;
40
+ precondition: {
41
+ kind: "absent";
42
+ } | {
43
+ kind: "revision";
44
+ revision: number;
45
+ } | {
46
+ kind: "none";
47
+ };
48
+ record: MemorixRecordDraft;
49
+ datasource?: DatasourceWriteInput;
50
+ suppressHooks?: boolean;
51
+ }): Promise<{
52
+ record: LogicalV2Record;
53
+ created: boolean;
54
+ unchanged?: boolean;
55
+ }>;
56
+ replace(req: {
57
+ scope: MemorixScope;
58
+ precondition: {
59
+ kind: "revision";
60
+ revision: number;
61
+ };
62
+ record: MemorixRecordDraft;
63
+ datasource?: DatasourceWriteInput;
64
+ suppressHooks?: boolean;
65
+ }): Promise<{
66
+ record: LogicalV2Record;
67
+ created: boolean;
68
+ unchanged?: boolean;
69
+ }>;
70
+ patch(req: {
71
+ scope: MemorixScope;
72
+ precondition: {
73
+ kind: "revision";
74
+ revision: number;
75
+ };
76
+ objectType: string;
77
+ contentType: string;
78
+ recordId: string;
79
+ discriminatorValue?: string;
80
+ ops: unknown;
81
+ datasource?: DatasourceWriteInput;
82
+ suppressHooks?: boolean;
83
+ }): Promise<{
84
+ record: LogicalV2Record;
85
+ created: boolean;
86
+ unchanged?: boolean;
87
+ }>;
88
+ remove(req: {
89
+ scope: MemorixScope;
90
+ objectType: string;
91
+ contentType: string;
92
+ recordId: string;
93
+ discriminatorValue?: string;
94
+ precondition: {
95
+ kind: "revision";
96
+ revision: number;
97
+ };
98
+ datasource?: DatasourceWriteInput;
99
+ suppressHooks?: boolean;
100
+ }): Promise<{
101
+ recordId: string;
102
+ objectType: string;
103
+ contentType: string;
104
+ removed: true;
105
+ previousRevision: number;
106
+ }>;
107
+ };
108
+ reader: {
109
+ getContent(scope: MemorixScope, address: {
110
+ objectType: string;
111
+ contentType: string;
112
+ recordId: string;
113
+ discriminatorValue?: string;
114
+ }): Promise<LogicalV2Record>;
115
+ };
116
+ catalog: WriterMetadataCatalog;
117
+ publications: {
118
+ list(): Promise<Array<{
119
+ status: string;
120
+ publicationId: string;
121
+ members: Array<{
122
+ recordId: string;
123
+ objectType: string;
124
+ contentType: string;
125
+ }>;
126
+ }>>;
127
+ };
128
+ };
129
+ export type CommittedWrite = {
130
+ operation: WriteOperation;
131
+ objectType: string;
132
+ contentType: string;
133
+ recordId: string;
134
+ revision: number;
135
+ data?: Record<string, unknown>;
136
+ hooks?: {
137
+ queued: number;
138
+ subscriptionIds: string[];
139
+ failed?: boolean;
140
+ };
141
+ };
142
+ export type ContentWriteDeps = {
143
+ scope: MemorixScope;
144
+ caller: string;
145
+ datasource: DatasourceWriteInput;
146
+ ports: ContentWritePorts;
147
+ receipts: WriteReceiptStore;
148
+ now?: () => string;
149
+ onCommitted?: (event: CommittedWrite) => Promise<unknown>;
150
+ /** Rejects the prepared write before a receipt is opened (patch guards). */
151
+ checkWrite?: (request: StoredContentWrite) => Promise<void>;
152
+ };
153
+ /** The 202 body of a queued write. */
154
+ export type QueuedAcceptBody = {
155
+ receiptId: string;
156
+ status: "queued";
157
+ storageKey: WriteReceipt["storageKey"];
158
+ runId: string;
159
+ stepId: string;
160
+ };
161
+ export type ContentWriteOutcome = {
162
+ kind: "stored";
163
+ httpStatus: 200;
164
+ body: Record<string, unknown>;
165
+ } | {
166
+ kind: "pending";
167
+ httpStatus: 202;
168
+ body: {
169
+ receiptId: string;
170
+ status: "pending";
171
+ retryAfterMs: number;
172
+ };
173
+ } | {
174
+ kind: "queued";
175
+ httpStatus: 202;
176
+ body: QueuedAcceptBody;
177
+ } | {
178
+ kind: "rejected";
179
+ error: ServiceError;
180
+ };
181
+ export type PreparedWrite = {
182
+ request: StoredContentWrite;
183
+ contentHash: string;
184
+ writeId?: string;
185
+ wirePrecondition: unknown;
186
+ };
187
+ export declare function runContentWrite(deps: ContentWriteDeps, body: ContentWriteBody, replay?: WriteReceiptRow): Promise<ContentWriteOutcome>;
188
+ export declare function runContentBatch(deps: ContentWriteDeps, body: unknown, datasourceFor: (body: ContentWriteBody) => DatasourceWriteInput): Promise<{
189
+ results: unknown[];
190
+ }>;
191
+ /** A queued row that cannot be applied after this many tries is rejected, so it cannot block its key forever. */
192
+ export declare const QUEUE_MAX_ATTEMPTS = 50;
193
+ export declare function queuedBody(row: WriteReceiptRow): QueuedAcceptBody;
194
+ export declare function prepareWrite(deps: ContentWriteDeps, body: ContentWriteBody, now: string): PreparedWrite;
195
+ export declare function storageKey(request: StoredContentWrite, recordId: string): WriteReceipt["storageKey"];
196
+ export declare function asServiceError(err: unknown): ServiceError;
197
+ export declare function publicError(error: ServiceError, shape: FailureShape): ReceiptError;
198
+ export declare function batchError(err: unknown): {
199
+ error: {
200
+ code: string;
201
+ field: string | null;
202
+ message: string;
203
+ retryable: boolean;
204
+ retryAfterMs?: number;
205
+ };
206
+ };
207
+ //# sourceMappingURL=content-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-write.d.ts","sourceRoot":"","sources":["../../src/writes/content-write.ts"],"names":[],"mappings":"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"}