@x12i/memorix-writer 1.1.0 → 1.3.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 (37) hide show
  1. package/dist/data/memorix-write-adapter.d.ts +11 -7
  2. package/dist/data/memorix-write-adapter.d.ts.map +1 -1
  3. package/dist/data/memorix-write-adapter.js +25 -6
  4. package/dist/data/memorix-write-adapter.js.map +1 -1
  5. package/dist/graph-runs/clear-run.d.ts.map +1 -1
  6. package/dist/graph-runs/clear-run.js +5 -1
  7. package/dist/graph-runs/clear-run.js.map +1 -1
  8. package/dist/graph-runs/ensure-persistency-relation.d.ts +8 -0
  9. package/dist/graph-runs/ensure-persistency-relation.d.ts.map +1 -0
  10. package/dist/graph-runs/ensure-persistency-relation.js +24 -0
  11. package/dist/graph-runs/ensure-persistency-relation.js.map +1 -0
  12. package/dist/graph-runs/mark-failed.d.ts.map +1 -1
  13. package/dist/graph-runs/mark-failed.js +5 -1
  14. package/dist/graph-runs/mark-failed.js.map +1 -1
  15. package/dist/graph-runs/mark-started.d.ts.map +1 -1
  16. package/dist/graph-runs/mark-started.js +5 -1
  17. package/dist/graph-runs/mark-started.js.map +1 -1
  18. package/dist/graph-runs/resolve-persistency-ids.d.ts +15 -0
  19. package/dist/graph-runs/resolve-persistency-ids.d.ts.map +1 -0
  20. package/dist/graph-runs/resolve-persistency-ids.js +33 -0
  21. package/dist/graph-runs/resolve-persistency-ids.js.map +1 -0
  22. package/dist/graph-runs/resolve-record-collection.d.ts +1 -0
  23. package/dist/graph-runs/resolve-record-collection.d.ts.map +1 -1
  24. package/dist/graph-runs/resolve-record-collection.js +7 -4
  25. package/dist/graph-runs/resolve-record-collection.js.map +1 -1
  26. package/dist/graph-runs/write-result.d.ts.map +1 -1
  27. package/dist/graph-runs/write-result.js +72 -54
  28. package/dist/graph-runs/write-result.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/mongo/collection-documents.d.ts +7 -1
  33. package/dist/mongo/collection-documents.d.ts.map +1 -1
  34. package/dist/mongo/collection-documents.js +11 -4
  35. package/dist/mongo/collection-documents.js.map +1 -1
  36. package/docs/GRAPH-RUNS.md +42 -4
  37. package/package.json +3 -3
@@ -1,30 +1,34 @@
1
+ import type { ClientSession } from "mongodb";
1
2
  import type { MemorixDataTier } from "../mongo/tier.js";
2
3
  import type { MemorixTarget } from "../mongo/target.js";
4
+ export type MemorixWriteAdapterOptions = {
5
+ session?: ClientSession;
6
+ };
3
7
  export type MemorixWriteAdapter = {
4
8
  target: MemorixTarget;
5
9
  database: string;
6
- findOne(collection: string, filter: Record<string, unknown>): Promise<Record<string, unknown> | null>;
10
+ findOne(collection: string, filter: Record<string, unknown>, opts?: MemorixWriteAdapterOptions): Promise<Record<string, unknown> | null>;
7
11
  findMany(collection: string, filter: Record<string, unknown>, opts?: {
8
12
  limit?: number;
9
13
  sort?: Record<string, unknown>;
10
- }): Promise<Record<string, unknown>[]>;
11
- insert(collection: string, document: Record<string, unknown>): Promise<{
14
+ } & MemorixWriteAdapterOptions): Promise<Record<string, unknown>[]>;
15
+ insert(collection: string, document: Record<string, unknown>, opts?: MemorixWriteAdapterOptions): Promise<{
12
16
  insertedId: unknown;
13
17
  }>;
14
- patch(collection: string, filter: Record<string, unknown>, $set: Record<string, unknown>): Promise<{
18
+ patch(collection: string, filter: Record<string, unknown>, $set: Record<string, unknown>, opts?: MemorixWriteAdapterOptions): Promise<{
15
19
  matchedCount: number;
16
20
  modifiedCount: number;
17
21
  }>;
18
- replace(collection: string, filter: Record<string, unknown>, replacement: Record<string, unknown>, upsert?: boolean): Promise<{
22
+ replace(collection: string, filter: Record<string, unknown>, replacement: Record<string, unknown>, upsert?: boolean, opts?: MemorixWriteAdapterOptions): Promise<{
19
23
  matchedCount: number;
20
24
  modifiedCount: number;
21
25
  upsertedCount: number;
22
26
  }>;
23
- update(collection: string, filter: Record<string, unknown>, update: Record<string, unknown>): Promise<{
27
+ update(collection: string, filter: Record<string, unknown>, update: Record<string, unknown>, opts?: MemorixWriteAdapterOptions): Promise<{
24
28
  matchedCount: number;
25
29
  modifiedCount: number;
26
30
  }>;
27
- deleteOne(collection: string, filter: Record<string, unknown>): Promise<{
31
+ deleteOne(collection: string, filter: Record<string, unknown>, opts?: MemorixWriteAdapterOptions): Promise<{
28
32
  deletedCount: number;
29
33
  }>;
30
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-write-adapter.d.ts","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACxD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpC,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,CAAC;AAgBF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,gCAAgC,GACxC,mBAAmB,CA8CrB"}
1
+ {"version":3,"file":"memorix-write-adapter.d.ts","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAU7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,0BAA0B,GACrF,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpC,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,0BAA0B,GAChC,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,CAAC;AAgBF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,gCAAgC,GACxC,mBAAmB,CAiErB"}
@@ -17,7 +17,11 @@ export function createMemorixWriteAdapter(tier, options) {
17
17
  return {
18
18
  target: options.target,
19
19
  database,
20
- findOne: (collection, filter) => getMemorixCollectionDocument(scopedTier, { collection, filter }),
20
+ findOne: (collection, filter, opts) => getMemorixCollectionDocument(scopedTier, {
21
+ collection,
22
+ filter,
23
+ session: opts?.session,
24
+ }),
21
25
  findMany: async (collection, filter, opts) => {
22
26
  const r = await listMemorixCollectionDocuments(scopedTier, {
23
27
  collection,
@@ -27,20 +31,35 @@ export function createMemorixWriteAdapter(tier, options) {
27
31
  });
28
32
  return r.documents;
29
33
  },
30
- insert: (collection, document) => insertMemorixCollectionDocument(scopedTier, { collection, document }),
31
- patch: (collection, filter, $set) => patchMemorixCollectionDocument(scopedTier, { collection, filter, $set }),
32
- replace: (collection, filter, replacement, upsert) => replaceMemorixCollectionDocument(scopedTier, {
34
+ insert: (collection, document, opts) => insertMemorixCollectionDocument(scopedTier, {
35
+ collection,
36
+ document,
37
+ session: opts?.session,
38
+ }),
39
+ patch: (collection, filter, $set, opts) => patchMemorixCollectionDocument(scopedTier, {
40
+ collection,
41
+ filter,
42
+ $set,
43
+ session: opts?.session,
44
+ }),
45
+ replace: (collection, filter, replacement, upsert, opts) => replaceMemorixCollectionDocument(scopedTier, {
33
46
  collection,
34
47
  filter,
35
48
  replacement,
36
49
  upsert,
50
+ session: opts?.session,
37
51
  }),
38
- update: (collection, filter, update) => updateMemorixCollectionDocument(scopedTier, {
52
+ update: (collection, filter, update, opts) => updateMemorixCollectionDocument(scopedTier, {
39
53
  collection,
40
54
  filter,
41
55
  update: update,
56
+ session: opts?.session,
57
+ }),
58
+ deleteOne: (collection, filter, opts) => deleteMemorixCollectionDocument(scopedTier, {
59
+ collection,
60
+ filter,
61
+ session: opts?.session,
42
62
  }),
43
- deleteOne: (collection, filter) => deleteMemorixCollectionDocument(scopedTier, { collection, filter }),
44
63
  };
45
64
  }
46
65
  //# sourceMappingURL=memorix-write-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-write-adapter.js","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA8CvD,SAAS,eAAe,CACtB,IAAqB,EACrB,MAAqB,EACrB,GAAsB;IAEtB,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAqB,EACrB,OAAyC;IAEzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;QAER,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAC9B,4BAA4B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAElE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,MAAM,8BAA8B,CAAC,UAAU,EAAE;gBACzD,UAAU;gBACV,MAAM;gBACN,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;gBACxB,IAAI,EAAG,IAAI,EAAE,IAA+B,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;aACnE,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAC/B,+BAA+B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAEvE,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAClC,8BAA8B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE1E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CACnD,gCAAgC,CAAC,UAAU,EAAE;YAC3C,UAAU;YACV,MAAM;YACN,WAAW;YACX,MAAM;SACP,CAAC;QAEJ,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CACrC,+BAA+B,CAAC,UAAU,EAAE;YAC1C,UAAU;YACV,MAAM;YACN,MAAM,EAAE,MAAoC;SAC7C,CAAC;QAEJ,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAChC,+BAA+B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memorix-write-adapter.js","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clear-run.d.ts","sourceRoot":"","sources":["../../src/graph-runs/clear-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAgB9B"}
1
+ {"version":3,"file":"clear-run.d.ts","sourceRoot":"","sources":["../../src/graph-runs/clear-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAsB9B"}
@@ -1,3 +1,4 @@
1
+ import { MemorixWriterError } from "../errors/errors.js";
1
2
  import { graphRunDotPath } from "./constants.js";
2
3
  import { createGraphRunWriterContext, loadSourceRecord } from "./context.js";
3
4
  import { graphRunLogContext } from "./logging.js";
@@ -10,9 +11,12 @@ export async function clearGraphRun(client, ref, graphId) {
10
11
  recordRef: ref,
11
12
  operation: "clearGraphRun",
12
13
  });
13
- await ctx.adapter.update(ctx.resolved.collection, ctx.resolved.filter, {
14
+ const unset = await ctx.adapter.update(ctx.resolved.collection, ctx.resolved.filter, {
14
15
  $unset: { [graphRunDotPath(graphId)]: "" },
15
16
  });
17
+ if (unset.matchedCount === 0) {
18
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while clearing _graphRuns for ${ctx.resolved.collection}`);
19
+ }
16
20
  return { ok: true, graphId, recordRef: ref };
17
21
  }
18
22
  //# sourceMappingURL=clear-run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clear-run.js","sourceRoot":"","sources":["../../src/graph-runs/clear-run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,GAAqB,EACrB,OAAe;IAEf,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE5B,kBAAkB,CAAC;QACjB,QAAQ,EAAE,EAAE;QACZ,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACrE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;KAC3C,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"clear-run.js","sourceRoot":"","sources":["../../src/graph-runs/clear-run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,GAAqB,EACrB,OAAe;IAEf,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE5B,kBAAkB,CAAC;QACjB,QAAQ,EAAE,EAAE;QACZ,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACnF,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;KAC3C,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,2DAA2D,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { PersistencyLinkIntent } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixWriterClient } from "../client/types.js";
3
+ /**
4
+ * Verifies the result entity carries a relation descriptor matching the link intent.
5
+ * Catalox mutation is out of scope for the writer client; missing relations fail fast.
6
+ */
7
+ export declare function ensurePersistencyRelationDescriptor(client: MemorixWriterClient, link: PersistencyLinkIntent): Promise<void>;
8
+ //# sourceMappingURL=ensure-persistency-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-persistency-relation.d.ts","sourceRoot":"","sources":["../../src/graph-runs/ensure-persistency-relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAmB9D;;;GAGG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -0,0 +1,24 @@
1
+ import { loadMemorixEntityDescriptor } from "../descriptors/load-entity-descriptor.js";
2
+ import { MemorixWriterError } from "../errors/errors.js";
3
+ function relationMatchesLink(existing, link) {
4
+ const source = existing.source;
5
+ return (existing.targetEntity === link.targetEntity &&
6
+ existing.type === link.type &&
7
+ source?.contentType === link.sourceContentType &&
8
+ source?.path === link.fkPath);
9
+ }
10
+ /**
11
+ * Verifies the result entity carries a relation descriptor matching the link intent.
12
+ * Catalox mutation is out of scope for the writer client; missing relations fail fast.
13
+ */
14
+ export async function ensurePersistencyRelationDescriptor(client, link) {
15
+ const entity = await loadMemorixEntityDescriptor(client, link.sourceEntity);
16
+ const existing = entity.relations?.[link.relationKey];
17
+ if (!existing) {
18
+ throw new MemorixWriterError("DESCRIPTOR_MISSING", `Relation "${link.relationKey}" not found on entity "${link.sourceEntity}"`);
19
+ }
20
+ if (!relationMatchesLink(existing, link)) {
21
+ throw new MemorixWriterError("DESCRIPTOR_MISSING", `Relation "${link.relationKey}" on "${link.sourceEntity}" does not match persistency link intent`);
22
+ }
23
+ }
24
+ //# sourceMappingURL=ensure-persistency-relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-persistency-relation.js","sourceRoot":"","sources":["../../src/graph-runs/ensure-persistency-relation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,SAAS,mBAAmB,CAC1B,QAAiC,EACjC,IAA2B;IAE3B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAEX,CAAC;IACd,OAAO,CACL,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;QAC3C,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;QAC3B,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC,iBAAiB;QAC9C,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC,MAAM,CAC7B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAA2B,EAC3B,IAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,kBAAkB,CAC1B,oBAAoB,EACpB,aAAa,IAAI,CAAC,WAAW,0BAA0B,IAAI,CAAC,YAAY,GAAG,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,QAAmC,EAAE,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,kBAAkB,CAC1B,oBAAoB,EACpB,aAAa,IAAI,CAAC,WAAW,SAAS,IAAI,CAAC,YAAY,0CAA0C,CAClG,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mark-failed.d.ts","sourceRoot":"","sources":["../../src/graph-runs/mark-failed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAS9D,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CA8BnC"}
1
+ {"version":3,"file":"mark-failed.d.ts","sourceRoot":"","sources":["../../src/graph-runs/mark-failed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CAoCnC"}
@@ -1,3 +1,4 @@
1
+ import { MemorixWriterError } from "../errors/errors.js";
1
2
  import { graphRunDotPath } from "./constants.js";
2
3
  import { createGraphRunWriterContext, loadSourceRecord, readGraphRunEntry, } from "./context.js";
3
4
  import { graphRunLogContext } from "./logging.js";
@@ -23,9 +24,12 @@ export async function markGraphRunFailed(client, ref, graphId, opts) {
23
24
  ? { graphVersion: existing.graphVersion }
24
25
  : {}),
25
26
  };
26
- await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
27
+ const stamp = await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
27
28
  [graphRunDotPath(graphId)]: entry,
28
29
  });
30
+ if (stamp.matchedCount === 0) {
31
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${ctx.resolved.collection}`);
32
+ }
29
33
  return { ok: true, graphId, recordRef: ref };
30
34
  }
31
35
  //# sourceMappingURL=mark-failed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mark-failed.js","sourceRoot":"","sources":["../../src/graph-runs/mark-failed.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAclD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA2B,EAC3B,GAAqB,EACrB,OAAe,EACf,IAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE7C,kBAAkB,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,QAAiB;QACzB,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,WAAW;QAC7C,WAAW;QACX,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"mark-failed.js","sourceRoot":"","sources":["../../src/graph-runs/mark-failed.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAclD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA2B,EAC3B,GAAqB,EACrB,OAAe,EACf,IAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE7C,kBAAkB,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,QAAiB;QACzB,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,WAAW;QAC7C,WAAW;QACX,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClF,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,2DAA2D,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mark-started.d.ts","sourceRoot":"","sources":["../../src/graph-runs/mark-started.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAS9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAiCpC"}
1
+ {"version":3,"file":"mark-started.d.ts","sourceRoot":"","sources":["../../src/graph-runs/mark-started.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAuCpC"}
@@ -1,3 +1,4 @@
1
+ import { MemorixWriterError } from "../errors/errors.js";
1
2
  import { graphRunDotPath } from "./constants.js";
2
3
  import { createGraphRunWriterContext, loadSourceRecord, readGraphRunEntry, } from "./context.js";
3
4
  import { graphRunLogContext } from "./logging.js";
@@ -23,9 +24,12 @@ export async function markGraphRunStarted(client, ref, graphId, opts) {
23
24
  attempts: opts.attempts,
24
25
  ...(opts.graphVersion !== undefined ? { graphVersion: opts.graphVersion } : {}),
25
26
  };
26
- await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
27
+ const stamp = await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
27
28
  [graphRunDotPath(graphId)]: entry,
28
29
  });
30
+ if (stamp.matchedCount === 0) {
31
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${ctx.resolved.collection}`);
32
+ }
29
33
  return { ok: true, action: "stamped", graphId, recordRef: ref };
30
34
  }
31
35
  //# sourceMappingURL=mark-started.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mark-started.js","sourceRoot":"","sources":["../../src/graph-runs/mark-started.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAelD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA2B,EAC3B,GAAqB,EACrB,OAAe,EACf,IAAgC;IAEhC,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEjD,kBAAkB,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,qBAAqB;KACjC,CAAC,CAAC;IAEH,IACE,QAAQ,EAAE,MAAM,KAAK,aAAa;QAClC,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EACvC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,aAAsB;QAC9B,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC;IAEF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"mark-started.js","sourceRoot":"","sources":["../../src/graph-runs/mark-started.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAelD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA2B,EAC3B,GAAqB,EACrB,OAAe,EACf,IAAgC;IAEhC,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEjD,kBAAkB,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,qBAAqB;KACjC,CAAC,CAAC;IAEH,IACE,QAAQ,EAAE,MAAM,KAAK,aAAa;QAClC,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EACvC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,aAAsB;QAC9B,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClF,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,2DAA2D,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { MemorixRecordRef, PersistencyRecordIdSource, PersistencyTarget } from "@x12i/memorix-descriptors/types";
2
+ export declare function isGenerateRecordId(recordIdSource: PersistencyRecordIdSource): recordIdSource is {
3
+ generate: true;
4
+ };
5
+ export declare function isCrossEntityPersistency(ref: MemorixRecordRef, persistency: PersistencyTarget): boolean;
6
+ export type ResolvedPersistencyIds = {
7
+ identityId: string;
8
+ recordId: string;
9
+ shouldInsert: boolean;
10
+ };
11
+ /**
12
+ * Resolves identity field (entityId/eventId/knowledgeId) and recordId per MRX-FRS-002.
13
+ */
14
+ export declare function resolvePersistencyIds(ref: MemorixRecordRef, persistency: PersistencyTarget): ResolvedPersistencyIds;
15
+ //# sourceMappingURL=resolve-persistency-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-persistency-ids.d.ts","sourceRoot":"","sources":["../../src/graph-runs/resolve-persistency-ids.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AAEzC,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,yBAAyB,GACxC,cAAc,IAAI;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAOtC;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAET;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,iBAAiB,GAC7B,sBAAsB,CAkBxB"}
@@ -0,0 +1,33 @@
1
+ import { randomUUID } from "node:crypto";
2
+ export function isGenerateRecordId(recordIdSource) {
3
+ return (typeof recordIdSource === "object" &&
4
+ recordIdSource !== null &&
5
+ "generate" in recordIdSource &&
6
+ recordIdSource.generate === true);
7
+ }
8
+ export function isCrossEntityPersistency(ref, persistency) {
9
+ return persistency.entityName !== ref.entityName;
10
+ }
11
+ /**
12
+ * Resolves identity field (entityId/eventId/knowledgeId) and recordId per MRX-FRS-002.
13
+ */
14
+ export function resolvePersistencyIds(ref, persistency) {
15
+ const source = persistency.recordIdSource;
16
+ if (source === "same-as-input") {
17
+ return {
18
+ identityId: ref.recordId,
19
+ recordId: ref.recordId,
20
+ shouldInsert: false,
21
+ };
22
+ }
23
+ if (isGenerateRecordId(source)) {
24
+ const recordId = randomUUID();
25
+ const identityId = isCrossEntityPersistency(ref, persistency)
26
+ ? randomUUID()
27
+ : ref.recordId;
28
+ return { identityId, recordId, shouldInsert: true };
29
+ }
30
+ const id = source.literal;
31
+ return { identityId: id, recordId: id, shouldInsert: false };
32
+ }
33
+ //# sourceMappingURL=resolve-persistency-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-persistency-ids.js","sourceRoot":"","sources":["../../src/graph-runs/resolve-persistency-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,MAAM,UAAU,kBAAkB,CAChC,cAAyC;IAEzC,OAAO,CACL,OAAO,cAAc,KAAK,QAAQ;QAClC,cAAc,KAAK,IAAI;QACvB,UAAU,IAAI,cAAc;QAC5B,cAAc,CAAC,QAAQ,KAAK,IAAI,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAqB,EACrB,WAA8B;IAE9B,OAAO,WAAW,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,CAAC;AACnD,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAqB,EACrB,WAA8B;IAE9B,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC;IAC1C,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,QAAQ;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC;YAC3D,CAAC,CAAC,UAAU,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC"}
@@ -9,6 +9,7 @@ export type ResolvedRecordCollection = {
9
9
  export declare function resolveIdFieldForTarget(target: MemorixRecordRef["target"]): "entityId" | "eventId";
10
10
  export declare function resolveCollectionFromRef(ref: MemorixRecordRef): string;
11
11
  export declare function resolveRecordCollection(ref: MemorixRecordRef): ResolvedRecordCollection;
12
+ /** @deprecated Use resolvePersistencyIds from resolve-persistency-ids.js */
12
13
  export declare function resolvePersistencyRecordId(ref: MemorixRecordRef, recordIdSource: import("@x12i/memorix-descriptors/types").PersistencyRecordIdSource): string;
13
14
  export declare function resolvePersistencyCollection(persistency: Pick<import("@x12i/memorix-descriptors/types").PersistencyTarget, "entityName" | "contentType">): string;
14
15
  //# sourceMappingURL=resolve-record-collection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-record-collection.d.ts","sourceRoot":"","sources":["../../src/graph-runs/resolve-record-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GACjC,UAAU,GAAG,SAAS,CAExB;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,gBAAgB,GACpB,wBAAwB,CAQ1B;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,gBAAgB,EACrB,cAAc,EAAE,OAAO,iCAAiC,EAAE,yBAAyB,GAClF,MAAM,CAKR;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,IAAI,CACf,OAAO,iCAAiC,EAAE,iBAAiB,EAC3D,YAAY,GAAG,aAAa,CAC7B,GACA,MAAM,CAER"}
1
+ {"version":3,"file":"resolve-record-collection.d.ts","sourceRoot":"","sources":["../../src/graph-runs/resolve-record-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GACjC,UAAU,GAAG,SAAS,CAExB;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,gBAAgB,GACpB,wBAAwB,CAQ1B;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,gBAAgB,EACrB,cAAc,EAAE,OAAO,iCAAiC,EAAE,yBAAyB,GAClF,MAAM,CAMR;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,IAAI,CACf,OAAO,iCAAiC,EAAE,iBAAiB,EAC3D,YAAY,GAAG,aAAa,CAC7B,GACA,MAAM,CAER"}
@@ -1,3 +1,4 @@
1
+ import { resolvePersistencyIds } from "./resolve-persistency-ids.js";
1
2
  export function resolveIdFieldForTarget(target) {
2
3
  return target === "event" ? "eventId" : "entityId";
3
4
  }
@@ -13,11 +14,13 @@ export function resolveRecordCollection(ref) {
13
14
  filter: { [idField]: ref.recordId },
14
15
  };
15
16
  }
17
+ /** @deprecated Use resolvePersistencyIds from resolve-persistency-ids.js */
16
18
  export function resolvePersistencyRecordId(ref, recordIdSource) {
17
- if (recordIdSource === "same-as-input") {
18
- return ref.recordId;
19
- }
20
- return recordIdSource.literal;
19
+ return resolvePersistencyIds(ref, {
20
+ entityName: ref.entityName,
21
+ contentType: ref.contentType,
22
+ recordIdSource,
23
+ }).recordId;
21
24
  }
22
25
  export function resolvePersistencyCollection(persistency) {
23
26
  return `${persistency.entityName}-${persistency.contentType}`;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-record-collection.js","sourceRoot":"","sources":["../../src/graph-runs/resolve-record-collection.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,uBAAuB,CACrC,MAAkC;IAElC,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAqB;IAC5D,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAqB;IAErB,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,wBAAwB,CAAC,GAAG,CAAC;QACzC,OAAO;QACP,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAAqB,EACrB,cAAmF;IAEnF,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,WAGC;IAED,OAAO,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"resolve-record-collection.js","sourceRoot":"","sources":["../../src/graph-runs/resolve-record-collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AASrE,MAAM,UAAU,uBAAuB,CACrC,MAAkC;IAElC,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAqB;IAC5D,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAqB;IAErB,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,wBAAwB,CAAC,GAAG,CAAC;QACzC,OAAO;QACP,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B,CACxC,GAAqB,EACrB,cAAmF;IAEnF,OAAO,qBAAqB,CAAC,GAAG,EAAE;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,cAAc;KACf,CAAC,CAAC,QAAQ,CAAC;AACd,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,WAGC;IAED,OAAO,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"write-result.d.ts","sourceRoot":"","sources":["../../src/graph-runs/write-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAkB9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAmCF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CAsGtC"}
1
+ {"version":3,"file":"write-result.d.ts","sourceRoot":"","sources":["../../src/graph-runs/write-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAgB9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAiBF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CAwItC"}
@@ -1,10 +1,13 @@
1
1
  import { createMemorixWriteAdapter } from "../data/memorix-write-adapter.js";
2
2
  import { getWriterMemorixTier } from "../client/ensure-tier.js";
3
3
  import { MemorixWriterError } from "../errors/errors.js";
4
+ import { deepSet } from "../utils/path.js";
4
5
  import { graphRunDotPath } from "./constants.js";
5
- import { createGraphRunWriterContext, loadSourceRecord, readGraphRunEntry, } from "./context.js";
6
+ import { readGraphRunEntry } from "./context.js";
7
+ import { ensurePersistencyRelationDescriptor } from "./ensure-persistency-relation.js";
6
8
  import { graphRunLogContext } from "./logging.js";
7
- import { resolvePersistencyCollection, resolvePersistencyRecordId, resolveRecordCollection, } from "./resolve-record-collection.js";
9
+ import { resolvePersistencyIds } from "./resolve-persistency-ids.js";
10
+ import { resolvePersistencyCollection, resolveRecordCollection, } from "./resolve-record-collection.js";
8
11
  function resolveResultTarget(ref, persistencyTarget) {
9
12
  return persistencyTarget.target ?? ref.target;
10
13
  }
@@ -15,43 +18,29 @@ function resolveResultIdField(target) {
15
18
  return "knowledgeId";
16
19
  return "entityId";
17
20
  }
18
- async function compensateResultWrite(args) {
19
- if (args.priorDoc) {
20
- await args.adapter.replace(args.resultCollection, args.resultFilter, args.priorDoc, false);
21
- return;
22
- }
23
- await args.adapter.deleteOne(args.resultCollection, args.resultFilter);
24
- }
25
21
  export async function writeGraphRunResult(client, ref, graphId, opts) {
26
- const ctx = await createGraphRunWriterContext(client, ref);
27
- const sourceDoc = await loadSourceRecord(ctx);
28
- const existing = readGraphRunEntry(sourceDoc, graphId);
29
22
  graphRunLogContext({
30
23
  jobRunId: opts.jobRunId,
31
24
  graphId,
32
25
  recordRef: ref,
33
26
  operation: "writeGraphRunResult",
34
27
  });
28
+ const tier = await getWriterMemorixTier(client);
29
+ const resolved = resolveRecordCollection(ref);
30
+ const sourceAdapter = createMemorixWriteAdapter(tier, {
31
+ target: resolved.target,
32
+ });
35
33
  const resultTarget = resolveResultTarget(ref, opts.persistencyTarget);
36
- const resultRecordId = resolvePersistencyRecordId(ref, opts.persistencyTarget.recordIdSource);
34
+ const { identityId, recordId: resultRecordId, shouldInsert } = resolvePersistencyIds(ref, opts.persistencyTarget);
37
35
  const resultCollection = resolvePersistencyCollection(opts.persistencyTarget);
38
36
  const resultIdField = resolveResultIdField(resultTarget);
39
- const resultFilter = { [resultIdField]: resultRecordId };
40
- const tier = await getWriterMemorixTier(client);
41
- const resultAdapter = createMemorixWriteAdapter(tier, { target: resultTarget });
42
- const priorResultDoc = await resultAdapter.findOne(resultCollection, resultFilter);
43
- const resultDoc = {
44
- ...opts.resultPayload,
45
- [resultIdField]: resultRecordId,
46
- recordId: resultRecordId,
47
- modifiedAt: new Date().toISOString(),
48
- ...(priorResultDoc?.createdAt
49
- ? { createdAt: priorResultDoc.createdAt }
50
- : { createdAt: new Date().toISOString() }),
51
- };
52
- const replaceResult = await resultAdapter.replace(resultCollection, resultFilter, resultDoc, true);
53
- if (replaceResult.matchedCount === 0 && replaceResult.upsertedCount === 0) {
54
- throw new MemorixWriterError("DESCRIPTOR_MISSING", `Failed to write graph result to ${resultCollection}`);
37
+ const resultFilter = { [resultIdField]: identityId };
38
+ const resultAdapter = createMemorixWriteAdapter(tier, {
39
+ target: resultTarget,
40
+ });
41
+ const link = opts.persistencyTarget.link;
42
+ if (link) {
43
+ await ensurePersistencyRelationDescriptor(client, link);
55
44
  }
56
45
  const resultPointer = {
57
46
  target: resultTarget,
@@ -59,36 +48,65 @@ export async function writeGraphRunResult(client, ref, graphId, opts) {
59
48
  contentType: opts.persistencyTarget.contentType,
60
49
  recordId: resultRecordId,
61
50
  };
62
- const completedAt = new Date().toISOString();
63
- const entry = {
64
- status: "done",
65
- startedAt: existing?.startedAt ?? completedAt,
66
- completedAt,
67
- lastJobRunId: opts.jobRunId,
68
- attempts: opts.attempts,
69
- result: resultPointer,
70
- ...(opts.graphVersion !== undefined
71
- ? { graphVersion: opts.graphVersion }
72
- : existing?.graphVersion !== undefined
73
- ? { graphVersion: existing.graphVersion }
74
- : {}),
75
- };
51
+ const session = tier.client.startSession();
76
52
  try {
77
- const stamp = await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, { [graphRunDotPath(graphId)]: entry });
78
- if (stamp.matchedCount === 0) {
79
- throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${resolveRecordCollection(ref).collection}`);
80
- }
53
+ await session.withTransaction(async () => {
54
+ const sourceDoc = await sourceAdapter.findOne(resolved.collection, resolved.filter, { session });
55
+ if (!sourceDoc) {
56
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Memorix record not found in ${resolved.collection} for ${resolved.idField}=${JSON.stringify(resolved.filter[resolved.idField])}`);
57
+ }
58
+ const existing = readGraphRunEntry(sourceDoc, graphId);
59
+ const completedAt = new Date().toISOString();
60
+ const resultDoc = {
61
+ ...opts.resultPayload,
62
+ [resultIdField]: identityId,
63
+ recordId: resultRecordId,
64
+ modifiedAt: completedAt,
65
+ createdAt: completedAt,
66
+ };
67
+ if (link) {
68
+ deepSet(resultDoc, link.fkPath, link.sourceRecordId);
69
+ }
70
+ if (shouldInsert) {
71
+ await resultAdapter.insert(resultCollection, resultDoc, { session });
72
+ }
73
+ else {
74
+ const priorResultDoc = await resultAdapter.findOne(resultCollection, resultFilter, { session });
75
+ if (priorResultDoc?.createdAt) {
76
+ resultDoc.createdAt = priorResultDoc.createdAt;
77
+ }
78
+ const replaceResult = await resultAdapter.replace(resultCollection, resultFilter, resultDoc, true, { session });
79
+ if (replaceResult.matchedCount === 0 &&
80
+ replaceResult.upsertedCount === 0) {
81
+ throw new MemorixWriterError("DESCRIPTOR_MISSING", `Failed to write graph result to ${resultCollection}`);
82
+ }
83
+ }
84
+ const entry = {
85
+ status: "done",
86
+ startedAt: existing?.startedAt ?? completedAt,
87
+ completedAt,
88
+ lastJobRunId: opts.jobRunId,
89
+ attempts: opts.attempts,
90
+ result: resultPointer,
91
+ ...(opts.graphVersion !== undefined
92
+ ? { graphVersion: opts.graphVersion }
93
+ : existing?.graphVersion !== undefined
94
+ ? { graphVersion: existing.graphVersion }
95
+ : {}),
96
+ };
97
+ const stamp = await sourceAdapter.patch(resolved.collection, resolved.filter, { [graphRunDotPath(graphId)]: entry }, { session });
98
+ if (stamp.matchedCount === 0) {
99
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${resolveRecordCollection(ref).collection}`);
100
+ }
101
+ });
81
102
  }
82
103
  catch (err) {
83
- await compensateResultWrite({
84
- adapter: resultAdapter,
85
- resultCollection,
86
- resultFilter,
87
- priorDoc: priorResultDoc,
88
- });
89
104
  if (err instanceof MemorixWriterError)
90
105
  throw err;
91
- throw new MemorixWriterError("GRAPH_RUN_STAMP_FAILED", err instanceof Error ? err.message : "Failed to stamp source _graphRuns");
106
+ throw new MemorixWriterError("GRAPH_RUN_STAMP_FAILED", err instanceof Error ? err.message : "Graph run result transaction failed");
107
+ }
108
+ finally {
109
+ await session.endSession();
92
110
  }
93
111
  return { ok: true, graphId, recordRef: ref, result: resultPointer };
94
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"write-result.js","sourceRoot":"","sources":["../../src/graph-runs/write-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-result.js","sourceRoot":"","sources":["../../src/graph-runs/write-result.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -26,7 +26,7 @@ export type { WriteGraphRunResultOptions, WriteGraphRunResultResponse, } from ".
26
26
  export type { ClearGraphRunResult } from "./graph-runs/clear-run.js";
27
27
  export type { EnsureGraphRunIndexesResult } from "./graph-runs/ensure-indexes.js";
28
28
  export type { GraphRunLogContext } from "./graph-runs/logging.js";
29
- export type { GraphRunStatus, GraphRunResultPointer, GraphRunError, GraphRunEntry, GraphRunsField, MemorixRecordRef, PersistencyRecordIdSource, PersistencyTarget, } from "@x12i/memorix-descriptors/types";
29
+ export type { GraphRunStatus, GraphRunResultPointer, GraphRunError, GraphRunEntry, GraphRunsField, MemorixRecordRef, PersistencyRecordIdSource, PersistencyLinkIntent, PersistencyTarget, } from "@x12i/memorix-descriptors/types";
30
30
  export type { MemorixWriterClient, CreateMemorixWriterOptions, CreateMemorixWriterFromEnvOptions, CataloxLike, MemorixObjectWriterLike, MemorixContentWriterRegistry, MemorixRetrievalClient, MemorixWriterDefaults, WriteMemorixRecordRequest, WriteMemorixRecordResponse, WriteMemorixRecordsRequest, WriteMemorixRecordsResponse, ValidateMemorixWriteResponse, } from "./client/types.js";
31
31
  export type { MemorixWriteDescriptor, MemorixWriteFieldDescriptor, MemorixIdempotencyDescriptor, } from "./descriptors/write-descriptor-types.js";
32
32
  export type { MemorixEntityDescriptor, MemorixContentObject, MemorixContentStorageDescriptor, MemorixContentTypeDescriptor, MemorixPropertyDescriptor, } from "./descriptors/entity-descriptor-types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,qCAAqC,EACrC,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA6D7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,qCAAqC,EACrC,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA8D7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** Descriptor-driven physical collection I/O (e.g. `assets-analysis`). */
2
- import type { Document, Sort } from "mongodb";
2
+ import type { ClientSession, Document, Sort } from "mongodb";
3
3
  import type { MemorixDataTier } from "./tier.js";
4
4
  export type ListMemorixCollectionDocumentsResult = {
5
5
  documents: Record<string, unknown>[];
@@ -18,10 +18,12 @@ export declare function getMemorixCollectionDocument(tier: MemorixDataTier, args
18
18
  collection: string;
19
19
  filter: Record<string, unknown>;
20
20
  projection?: Document;
21
+ session?: ClientSession;
21
22
  }): Promise<Record<string, unknown> | null>;
22
23
  export declare function insertMemorixCollectionDocument(tier: MemorixDataTier, args: {
23
24
  collection: string;
24
25
  document: Record<string, unknown>;
26
+ session?: ClientSession;
25
27
  }): Promise<{
26
28
  insertedId: unknown;
27
29
  }>;
@@ -30,6 +32,7 @@ export declare function replaceMemorixCollectionDocument(tier: MemorixDataTier,
30
32
  filter: Record<string, unknown>;
31
33
  replacement: Record<string, unknown>;
32
34
  upsert?: boolean;
35
+ session?: ClientSession;
33
36
  }): Promise<{
34
37
  matchedCount: number;
35
38
  modifiedCount: number;
@@ -39,6 +42,7 @@ export declare function updateMemorixCollectionDocument(tier: MemorixDataTier, a
39
42
  collection: string;
40
43
  filter: Record<string, unknown>;
41
44
  update: Document;
45
+ session?: ClientSession;
42
46
  }): Promise<{
43
47
  matchedCount: number;
44
48
  modifiedCount: number;
@@ -47,6 +51,7 @@ export declare function patchMemorixCollectionDocument(tier: MemorixDataTier, ar
47
51
  collection: string;
48
52
  filter: Record<string, unknown>;
49
53
  $set: Record<string, unknown>;
54
+ session?: ClientSession;
50
55
  }): Promise<{
51
56
  matchedCount: number;
52
57
  modifiedCount: number;
@@ -54,6 +59,7 @@ export declare function patchMemorixCollectionDocument(tier: MemorixDataTier, ar
54
59
  export declare function deleteMemorixCollectionDocument(tier: MemorixDataTier, args: {
55
60
  collection: string;
56
61
  filter: Record<string, unknown>;
62
+ session?: ClientSession;
57
63
  }): Promise<{
58
64
  deletedCount: number;
59
65
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"collection-documents.d.ts","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-documents.d.ts","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
@@ -63,20 +63,26 @@ export async function getMemorixCollectionDocument(tier, args) {
63
63
  const filter = normalizeMemorixFilter(args.filter);
64
64
  const doc = await col.findOne(filter, {
65
65
  projection: args.projection,
66
+ ...(args.session ? { session: args.session } : {}),
66
67
  });
67
68
  return doc;
68
69
  }
69
70
  export async function insertMemorixCollectionDocument(tier, args) {
70
71
  assertTierReady(tier);
71
72
  const col = tier.db.collection(resolveCollection(args.collection));
72
- const r = await col.insertOne(args.document);
73
+ const r = await col.insertOne(args.document, {
74
+ ...(args.session ? { session: args.session } : {}),
75
+ });
73
76
  return { insertedId: r.insertedId };
74
77
  }
75
78
  export async function replaceMemorixCollectionDocument(tier, args) {
76
79
  assertTierReady(tier);
77
80
  const col = tier.db.collection(resolveCollection(args.collection));
78
81
  const filter = normalizeMemorixFilter(args.filter);
79
- const r = await col.replaceOne(filter, args.replacement, { upsert: args.upsert ?? false });
82
+ const r = await col.replaceOne(filter, args.replacement, {
83
+ upsert: args.upsert ?? false,
84
+ ...(args.session ? { session: args.session } : {}),
85
+ });
80
86
  return {
81
87
  matchedCount: r.matchedCount,
82
88
  modifiedCount: r.modifiedCount,
@@ -87,7 +93,7 @@ export async function updateMemorixCollectionDocument(tier, args) {
87
93
  assertTierReady(tier);
88
94
  const col = tier.db.collection(resolveCollection(args.collection));
89
95
  const filter = normalizeMemorixFilter(args.filter);
90
- const r = await col.updateOne(filter, args.update);
96
+ const r = await col.updateOne(filter, args.update, args.session ? { session: args.session } : undefined);
91
97
  return { matchedCount: r.matchedCount, modifiedCount: r.modifiedCount };
92
98
  }
93
99
  export async function patchMemorixCollectionDocument(tier, args) {
@@ -95,13 +101,14 @@ export async function patchMemorixCollectionDocument(tier, args) {
95
101
  collection: args.collection,
96
102
  filter: args.filter,
97
103
  update: { $set: args.$set },
104
+ session: args.session,
98
105
  });
99
106
  }
100
107
  export async function deleteMemorixCollectionDocument(tier, args) {
101
108
  assertTierReady(tier);
102
109
  const col = tier.db.collection(resolveCollection(args.collection));
103
110
  const filter = normalizeMemorixFilter(args.filter);
104
- const r = await col.deleteOne(filter);
111
+ const r = await col.deleteOne(filter, args.session ? { session: args.session } : undefined);
105
112
  return { deletedCount: r.deletedCount };
106
113
  }
107
114
  //# sourceMappingURL=collection-documents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-documents.js","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-documents.js","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
@@ -34,10 +34,12 @@ Sets terminal `failed` status with `error` and `completedAt`. Call only when `jo
34
34
 
35
35
  ### `writeGraphRunResult(ref, graphId, opts)` — combined success path
36
36
 
37
- 1. Upserts the graph result document to the persistency target collection (`<entityName>-<contentType>`).
38
- 2. Stamps the source record `_graphRuns.<graphId>` = `done` + result pointer + `completedAt`.
37
+ 1. Writes the graph result document to the persistency target collection (`<entityName>-<contentType>`).
38
+ - **`recordIdSource: { generate: true }` (MRX-FRS-002):** always **inserts** a new record with a new `recordId`. Same-entity runs keep the source identity field (`entityId` / `eventId`); cross-entity runs allocate a new identity as well. Optional `link` applies an FK on the result document and verifies the relation descriptor on the result entity.
39
+ - **`recordIdSource: "same-as-input"` (deprecated):** upserts/replaces by source id (legacy 1.2.0 behavior).
40
+ 2. Stamps the source record `_graphRuns.<graphId>` = `done` + result pointer (using the **new** `recordId` when `generate: true`) + `completedAt`.
39
41
 
40
- **Atomicity (best-effort compensation):** No Mongo transactions. Result is written first; if stamping fails, the result document is rolled back (restored to prior state or deleted). A hard crash between steps can leave a stray result doc reconcile via jobs / optional sweep (FRS-001-F).
42
+ **Atomicity (Mongo transaction):** Result upsert and source stamp run inside a single Mongo transaction via `client.startSession().withTransaction()`. If either step fails, both are rolled back. **Requires a transaction-capable Mongo deployment** (replica set or sharded cluster). Standalone Mongo instances will fail at runtime when calling this API.
41
43
 
42
44
  ### `clearGraphRun(ref, graphId)`
43
45
 
@@ -76,13 +78,49 @@ Read exposure:
76
78
  - **List:** `includeGraphRuns: true` adds `_graphRuns` to row projection (default off).
77
79
  - **Item:** `includeGraphRuns` defaults to **true**; response includes top-level `_graphRuns` when present.
78
80
 
81
+ ## Count and overview APIs (`@x12i/memorix-retrieval`)
82
+
83
+ `GraphRunFilterInput` is defined in `@x12i/memorix-descriptors/types` (MRX-FRS-001 shared contract).
84
+
85
+ ```typescript
86
+ import {
87
+ countByGraphRunFilter,
88
+ getProcessingOverview,
89
+ } from "@x12i/memorix-retrieval";
90
+
91
+ await countByGraphRunFilter(client, {
92
+ target: "entity",
93
+ collection: "assets-snapshots",
94
+ graphRunFilter: { graphRunFailed: { graphId: "graph-qcrbz6t" } },
95
+ });
96
+
97
+ await getProcessingOverview(client, {
98
+ appId: "memorix",
99
+ graphIds: ["graph-qcrbz6t"],
100
+ });
101
+ ```
102
+
103
+ Uses Mongo `countDocuments` / aggregation — not list pagination.
104
+
105
+ ## Indexes and performance
106
+
107
+ Create a sparse top-level index on each **canonical** source collection (required for graph-run count performance):
108
+
109
+ ```javascript
110
+ db.<canonicalCollection>.createIndex({ _graphRuns: 1 }, { sparse: true, name: "idx_graphRuns" });
111
+ ```
112
+
113
+ Count queries filter on nested paths such as `_graphRuns.<graphId>.status`. The sparse top-level index is the baseline; optional per-graph compound indexes are created via `ensureGraphRunIndexes` in this package.
114
+
115
+ **Estimated vs exact totals:** `countByGraphRunFilter` and `getProcessingOverview` accept `estimated: true` for unfiltered collection totals on very large collections. Bucket counts (processed / failed / pending) always use exact `countDocuments`.
116
+
79
117
  ## Error codes
80
118
 
81
119
  | Code | When |
82
120
  |------|------|
83
121
  | `RECORD_NOT_FOUND` | Source record missing |
84
122
  | `DESCRIPTOR_MISSING` | Result collection write failed |
85
- | `GRAPH_RUN_STAMP_FAILED` | Stamp failed after compensation attempt |
123
+ | `GRAPH_RUN_STAMP_FAILED` | Transaction failed (stamp or result write) |
86
124
  | `SYSTEM_FIELD_NOT_WRITABLE` | `_graphRuns` passed to `writeMemorixRecord` |
87
125
 
88
126
  Log correlation shape: `{ jobRunId, graphId, recordRef, operation }`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/memorix-writer",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Descriptor-driven write layer for Memorix entity/event records and content objects",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -27,8 +27,8 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@x12i/catalox": "^5.1.1",
30
- "@x12i/memorix-descriptors": "^1.7.0",
31
- "@x12i/memorix-retrieval": "^1.12.0",
30
+ "@x12i/memorix-descriptors": "^1.10.0",
31
+ "@x12i/memorix-retrieval": "^1.13.0",
32
32
  "mongodb": "^6.21.0"
33
33
  },
34
34
  "devDependencies": {