@x12i/memorix-service 3.12.1 → 3.12.4

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 (130) hide show
  1. package/README.md +1 -1
  2. package/dist/activity-ring.d.ts +22 -1
  3. package/dist/activity-ring.d.ts.map +1 -1
  4. package/dist/activity-ring.js +44 -0
  5. package/dist/activity-ring.js.map +1 -1
  6. package/dist/activity-routes.d.ts.map +1 -1
  7. package/dist/activity-routes.js +3 -2
  8. package/dist/activity-routes.js.map +1 -1
  9. package/dist/activity-ui.d.ts.map +1 -1
  10. package/dist/activity-ui.js +200 -11
  11. package/dist/activity-ui.js.map +1 -1
  12. package/dist/agent-catalog.d.ts +32 -0
  13. package/dist/agent-catalog.d.ts.map +1 -0
  14. package/dist/agent-catalog.js +80 -0
  15. package/dist/agent-catalog.js.map +1 -0
  16. package/dist/analytics/engine.d.ts.map +1 -1
  17. package/dist/analytics/engine.js +2 -1
  18. package/dist/analytics/engine.js.map +1 -1
  19. package/dist/analytics/state.d.ts +1 -1
  20. package/dist/analytics/tracker.d.ts +2 -0
  21. package/dist/analytics/tracker.d.ts.map +1 -1
  22. package/dist/analytics/tracker.js +15 -8
  23. package/dist/analytics/tracker.js.map +1 -1
  24. package/dist/app.d.ts.map +1 -1
  25. package/dist/app.js +24 -1
  26. package/dist/app.js.map +1 -1
  27. package/dist/arrivals-backfill.d.ts +23 -0
  28. package/dist/arrivals-backfill.d.ts.map +1 -0
  29. package/dist/arrivals-backfill.js +132 -0
  30. package/dist/arrivals-backfill.js.map +1 -0
  31. package/dist/arrivals-routes.d.ts +8 -0
  32. package/dist/arrivals-routes.d.ts.map +1 -0
  33. package/dist/arrivals-routes.js +17 -0
  34. package/dist/arrivals-routes.js.map +1 -0
  35. package/dist/arrivals-ui.d.ts +3 -0
  36. package/dist/arrivals-ui.d.ts.map +1 -0
  37. package/dist/arrivals-ui.js +277 -0
  38. package/dist/arrivals-ui.js.map +1 -0
  39. package/dist/catalog-bridge.d.ts.map +1 -1
  40. package/dist/catalog-bridge.js +32 -9
  41. package/dist/catalog-bridge.js.map +1 -1
  42. package/dist/catalog-live-routes.d.ts +4 -0
  43. package/dist/catalog-live-routes.d.ts.map +1 -0
  44. package/dist/catalog-live-routes.js +12 -0
  45. package/dist/catalog-live-routes.js.map +1 -0
  46. package/dist/catalog-live-ui.d.ts +3 -0
  47. package/dist/catalog-live-ui.d.ts.map +1 -0
  48. package/dist/catalog-live-ui.js +230 -0
  49. package/dist/catalog-live-ui.js.map +1 -0
  50. package/dist/catalog-live.d.ts +31 -0
  51. package/dist/catalog-live.d.ts.map +1 -0
  52. package/dist/catalog-live.js +67 -0
  53. package/dist/catalog-live.js.map +1 -0
  54. package/dist/content-arrivals-countex.d.ts +90 -0
  55. package/dist/content-arrivals-countex.d.ts.map +1 -0
  56. package/dist/content-arrivals-countex.js +252 -0
  57. package/dist/content-arrivals-countex.js.map +1 -0
  58. package/dist/data-changes-routes.js +1 -1
  59. package/dist/data-changes-routes.js.map +1 -1
  60. package/dist/data-changes-ui.js +2 -2
  61. package/dist/data-changes.d.ts +3 -0
  62. package/dist/data-changes.d.ts.map +1 -1
  63. package/dist/data-changes.js +22 -21
  64. package/dist/data-changes.js.map +1 -1
  65. package/dist/errors.d.ts +1 -1
  66. package/dist/errors.d.ts.map +1 -1
  67. package/dist/errors.js +4 -2
  68. package/dist/errors.js.map +1 -1
  69. package/dist/hooks/backfill.d.ts +31 -0
  70. package/dist/hooks/backfill.d.ts.map +1 -0
  71. package/dist/hooks/backfill.js +78 -0
  72. package/dist/hooks/backfill.js.map +1 -0
  73. package/dist/hooks/enqueue.d.ts +6 -1
  74. package/dist/hooks/enqueue.d.ts.map +1 -1
  75. package/dist/hooks/enqueue.js +15 -1
  76. package/dist/hooks/enqueue.js.map +1 -1
  77. package/dist/hooks/request-trigger.d.ts +16 -0
  78. package/dist/hooks/request-trigger.d.ts.map +1 -0
  79. package/dist/hooks/request-trigger.js +31 -0
  80. package/dist/hooks/request-trigger.js.map +1 -0
  81. package/dist/hooks/store.d.ts +1 -0
  82. package/dist/hooks/store.d.ts.map +1 -1
  83. package/dist/hooks/store.js +49 -0
  84. package/dist/hooks/store.js.map +1 -1
  85. package/dist/hooks/types.d.ts +16 -0
  86. package/dist/hooks/types.d.ts.map +1 -1
  87. package/dist/hooks/types.js.map +1 -1
  88. package/dist/hooks-live-routes.js +1 -1
  89. package/dist/hooks-live-routes.js.map +1 -1
  90. package/dist/hooks-live-ui.js +1 -1
  91. package/dist/land-v2-guards.d.ts +5 -12
  92. package/dist/land-v2-guards.d.ts.map +1 -1
  93. package/dist/land-v2-guards.js +10 -33
  94. package/dist/land-v2-guards.js.map +1 -1
  95. package/dist/live-ops-nav.d.ts.map +1 -1
  96. package/dist/live-ops-nav.js +8 -0
  97. package/dist/live-ops-nav.js.map +1 -1
  98. package/dist/nexum-analysis/outbox.d.ts +1 -1
  99. package/dist/nexum-analysis/reconcile.d.ts.map +1 -1
  100. package/dist/nexum-analysis/reconcile.js +3 -2
  101. package/dist/nexum-analysis/reconcile.js.map +1 -1
  102. package/dist/openapi/openapi.json +65 -2
  103. package/dist/operational-db.d.ts +2 -2
  104. package/dist/operational-db.d.ts.map +1 -1
  105. package/dist/operational-db.js +8 -11
  106. package/dist/operational-db.js.map +1 -1
  107. package/dist/platform.d.ts +9 -3
  108. package/dist/platform.d.ts.map +1 -1
  109. package/dist/platform.js +21 -8
  110. package/dist/platform.js.map +1 -1
  111. package/dist/routes/data.d.ts.map +1 -1
  112. package/dist/routes/data.js +109 -27
  113. package/dist/routes/data.js.map +1 -1
  114. package/dist/routes/hooks.d.ts.map +1 -1
  115. package/dist/routes/hooks.js +18 -0
  116. package/dist/routes/hooks.js.map +1 -1
  117. package/dist/routes/memory.d.ts.map +1 -1
  118. package/dist/routes/memory.js +2 -4
  119. package/dist/routes/memory.js.map +1 -1
  120. package/dist/routes/metadata.d.ts.map +1 -1
  121. package/dist/routes/metadata.js +12 -0
  122. package/dist/routes/metadata.js.map +1 -1
  123. package/dist/routes/mgc-landing.d.ts.map +1 -1
  124. package/dist/routes/mgc-landing.js +64 -94
  125. package/dist/routes/mgc-landing.js.map +1 -1
  126. package/dist/routes/workflow.d.ts.map +1 -1
  127. package/dist/routes/workflow.js +4 -10
  128. package/dist/routes/workflow.js.map +1 -1
  129. package/openapi/openapi.json +65 -2
  130. package/package.json +2 -2
@@ -0,0 +1,78 @@
1
+ import { isDeepStrictEqual } from "node:util";
2
+ import { buildDelivery, readPath } from "./contract.js";
3
+ const PAGE = 200;
4
+ function eventForRevision(revision) {
5
+ if (revision <= 1)
6
+ return { event: "created", previousRevision: null };
7
+ return { event: "updated", previousRevision: revision - 1 };
8
+ }
9
+ function matchesDiscriminator(subscription, row) {
10
+ const discriminator = subscription.match.discriminator;
11
+ if (!discriminator)
12
+ return true;
13
+ return isDeepStrictEqual(readPath(row, discriminator.path), discriminator.equals);
14
+ }
15
+ /**
16
+ * Enqueue one inbox delivery for each stored row of this subscription's
17
+ * object type and content type that has no trigger mark. Claiming the mark
18
+ * is what makes a second call enqueue nothing.
19
+ */
20
+ export async function backfillSubscription(args) {
21
+ const { store, subscription, scope, listContent } = args;
22
+ const nowIso = args.nowIso ?? new Date().toISOString();
23
+ let enqueued = 0;
24
+ let alreadyTriggered = 0;
25
+ let cursor;
26
+ do {
27
+ const page = await listContent({
28
+ objectType: subscription.match.objectType,
29
+ contentType: subscription.match.contentType,
30
+ limit: PAGE,
31
+ ...(cursor ? { cursor } : {}),
32
+ });
33
+ for (const row of page.items) {
34
+ if (!matchesDiscriminator(subscription, row))
35
+ continue;
36
+ const { event, previousRevision } = eventForRevision(row.revision);
37
+ if (!subscription.match.events.includes(event))
38
+ continue;
39
+ const claimed = await store.claimTrigger({
40
+ subscriptionId: subscription.subscriptionId,
41
+ recordId: row.recordId,
42
+ objectType: subscription.match.objectType,
43
+ contentType: subscription.match.contentType,
44
+ markedAt: nowIso,
45
+ });
46
+ if (!claimed) {
47
+ alreadyTriggered += 1;
48
+ continue;
49
+ }
50
+ try {
51
+ const seq = await store.nextSeq(1);
52
+ const fact = {
53
+ scope,
54
+ event,
55
+ dataChanged: true,
56
+ occurredAt: nowIso,
57
+ address: {
58
+ objectType: subscription.match.objectType,
59
+ contentType: subscription.match.contentType,
60
+ recordId: row.recordId,
61
+ revision: row.revision,
62
+ },
63
+ change: { previousRevision, dataChanged: true },
64
+ record: row,
65
+ };
66
+ await store.insertDeliveries([buildDelivery(subscription, fact, seq, nowIso)]);
67
+ enqueued += 1;
68
+ }
69
+ catch (err) {
70
+ await store.releaseTrigger(subscription.subscriptionId, row.recordId);
71
+ throw err;
72
+ }
73
+ }
74
+ cursor = page.nextCursor;
75
+ } while (cursor);
76
+ return { subscriptionId: subscription.subscriptionId, enqueued, alreadyTriggered };
77
+ }
78
+ //# sourceMappingURL=backfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../src/hooks/backfill.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import type { ContentCommitFact } from "@x12i/memorix-data";
2
2
  import type { HookStore } from "./types.js";
3
- export declare function enqueueContentHooks(store: HookStore, fact: ContentCommitFact, kick: (orgId: string) => void): Promise<void>;
3
+ export type HookEnqueueResult = {
4
+ queued: number;
5
+ subscriptionIds: string[];
6
+ failed?: boolean;
7
+ };
8
+ export declare function enqueueContentHooks(store: HookStore, fact: ContentCommitFact, kick: (orgId: string) => void): Promise<HookEnqueueResult>;
4
9
  //# sourceMappingURL=enqueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enqueue.d.ts","sourceRoot":"","sources":["../../src/hooks/enqueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"enqueue.d.ts","sourceRoot":"","sources":["../../src/hooks/enqueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CA4B5B"}
@@ -4,16 +4,30 @@ export async function enqueueContentHooks(store, fact, kick) {
4
4
  const subscriptions = await store.listSubscriptions();
5
5
  const matched = subscriptions.filter((subscription) => subscriptionWants(subscription, fact));
6
6
  if (matched.length === 0)
7
- return;
7
+ return { queued: 0, subscriptionIds: [] };
8
8
  const nowIso = new Date().toISOString();
9
9
  const first = await store.nextSeq(matched.length);
10
10
  const rows = matched.map((subscription, index) => buildDelivery(subscription, fact, first + index, nowIso));
11
11
  await store.insertDeliveries(rows);
12
+ for (const subscription of matched) {
13
+ await store.claimTrigger({
14
+ subscriptionId: subscription.subscriptionId,
15
+ recordId: fact.address.recordId,
16
+ objectType: fact.address.objectType,
17
+ contentType: fact.address.contentType,
18
+ markedAt: nowIso,
19
+ });
20
+ }
12
21
  kick(fact.scope.orgId);
22
+ return {
23
+ queued: rows.length,
24
+ subscriptionIds: matched.map((subscription) => subscription.subscriptionId),
25
+ };
13
26
  }
14
27
  catch (err) {
15
28
  const message = err instanceof Error ? err.message : String(err);
16
29
  console.error("[memorix-service] content hook enqueue failed", message);
30
+ return { queued: 0, subscriptionIds: [], failed: true };
17
31
  }
18
32
  }
19
33
  //# sourceMappingURL=enqueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enqueue.js","sourceRoot":"","sources":["../../src/hooks/enqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGjE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAgB,EAChB,IAAuB,EACvB,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5G,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"enqueue.js","sourceRoot":"","sources":["../../src/hooks/enqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASjE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAgB,EAChB,IAAuB,EACvB,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5G,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,KAAK,CAAC,YAAY,CAAC;gBACvB,cAAc,EAAE,YAAY,CAAC,cAAc;gBAC3C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACrC,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC;SAC5E,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { HookEnqueueResult } from "./enqueue.js";
2
+ /** Remember the hook enqueue result for the write running on this async stack. */
3
+ export declare function noteHookTrigger(result: HookEnqueueResult): void;
4
+ /**
5
+ * Run a content write. `hooks` is set only when the commit actually checked subscriptions.
6
+ * A suppressed write leaves it unset.
7
+ */
8
+ export declare function runHookTrigger<T>(fn: () => Promise<T>): Promise<{
9
+ value: T;
10
+ hooks?: {
11
+ queued: number;
12
+ subscriptionIds: string[];
13
+ failed?: boolean;
14
+ };
15
+ }>;
16
+ //# sourceMappingURL=request-trigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-trigger.d.ts","sourceRoot":"","sources":["../../src/hooks/request-trigger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAWtD,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAO/D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC,CAYhG"}
@@ -0,0 +1,31 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ const storage = new AsyncLocalStorage();
3
+ /** Remember the hook enqueue result for the write running on this async stack. */
4
+ export function noteHookTrigger(result) {
5
+ const slot = storage.getStore();
6
+ if (!slot)
7
+ return;
8
+ slot.noted = true;
9
+ slot.queued = result.queued;
10
+ slot.subscriptionIds = result.subscriptionIds;
11
+ slot.failed = result.failed;
12
+ }
13
+ /**
14
+ * Run a content write. `hooks` is set only when the commit actually checked subscriptions.
15
+ * A suppressed write leaves it unset.
16
+ */
17
+ export async function runHookTrigger(fn) {
18
+ const slot = { noted: false, queued: 0, subscriptionIds: [] };
19
+ const value = await storage.run(slot, fn);
20
+ if (!slot.noted)
21
+ return { value };
22
+ return {
23
+ value,
24
+ hooks: {
25
+ queued: slot.queued,
26
+ subscriptionIds: slot.subscriptionIds,
27
+ failed: slot.failed,
28
+ },
29
+ };
30
+ }
31
+ //# sourceMappingURL=request-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-trigger.js","sourceRoot":"","sources":["../../src/hooks/request-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAQ,CAAC;AAE9C,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAoB;IAEpB,MAAM,IAAI,GAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IACpE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,OAAO;QACL,KAAK;QACL,KAAK,EAAE;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { Db } from "mongodb";
2
2
  import type { HookStore } from "./types.js";
3
+ export declare function hookTriggerId(subscriptionId: string, recordId: string): string;
3
4
  export declare function createMemoryHookStore(): HookStore;
4
5
  export declare function createMongoHookStore(db: Db): HookStore;
5
6
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/hooks/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAgD,SAAS,EAAoB,MAAM,YAAY,CAAC;AAiB5G,wBAAgB,qBAAqB,IAAI,SAAS,CA6GjD;AAeD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CA0JtD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/hooks/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,YAAY,CAAC;AAOpB,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9E;AAiBD,wBAAgB,qBAAqB,IAAI,SAAS,CA4HjD;AAgBD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAiLtD"}
@@ -1,6 +1,13 @@
1
1
  const SUBSCRIPTIONS = "content_hook_subscriptions";
2
2
  const DELIVERIES = "content_hook_deliveries";
3
+ const TRIGGERS = "content_hook_triggers";
3
4
  const SEQ = "content_hook_seq";
5
+ export function hookTriggerId(subscriptionId, recordId) {
6
+ return `${subscriptionId}\0${recordId}`;
7
+ }
8
+ function isDuplicateKey(err) {
9
+ return typeof err === "object" && err !== null && err.code === 11000;
10
+ }
4
11
  function isDue(row, nowIso) {
5
12
  if (row.status !== "pending")
6
13
  return false;
@@ -16,6 +23,7 @@ function isTerminal(status) {
16
23
  export function createMemoryHookStore() {
17
24
  const subscriptions = new Map();
18
25
  const deliveries = new Map();
26
+ const triggers = new Map();
19
27
  let seq = 0;
20
28
  return {
21
29
  async saveSubscription(row) {
@@ -118,6 +126,22 @@ export function createMemoryHookStore() {
118
126
  deliveries.delete(id);
119
127
  }
120
128
  },
129
+ async claimTrigger(mark) {
130
+ const id = hookTriggerId(mark.subscriptionId, mark.recordId);
131
+ if (triggers.has(id))
132
+ return false;
133
+ triggers.set(id, mark);
134
+ return true;
135
+ },
136
+ async releaseTrigger(subscriptionId, recordId) {
137
+ triggers.delete(hookTriggerId(subscriptionId, recordId));
138
+ },
139
+ async deleteTriggers(subscriptionId) {
140
+ for (const [id, mark] of triggers) {
141
+ if (mark.subscriptionId === subscriptionId)
142
+ triggers.delete(id);
143
+ }
144
+ },
121
145
  async nextSeq(count) {
122
146
  const first = seq + 1;
123
147
  seq += count;
@@ -136,6 +160,7 @@ function deliveryFrom(doc) {
136
160
  export function createMongoHookStore(db) {
137
161
  const subscriptions = db.collection(SUBSCRIPTIONS);
138
162
  const deliveries = db.collection(DELIVERIES);
163
+ const triggers = db.collection(TRIGGERS);
139
164
  const seq = db.collection(SEQ);
140
165
  let ready = null;
141
166
  function ensure() {
@@ -143,6 +168,7 @@ export function createMongoHookStore(db) {
143
168
  subscriptions.createIndex({ enabled: 1, "match.objectType": 1, "match.contentType": 1 }),
144
169
  deliveries.createIndex({ subscriptionId: 1, seq: -1 }),
145
170
  deliveries.createIndex({ status: 1, nextAttemptAt: 1, seq: 1 }),
171
+ triggers.createIndex({ subscriptionId: 1 }),
146
172
  ]).then(() => undefined);
147
173
  return ready;
148
174
  }
@@ -274,6 +300,29 @@ export function createMongoHookStore(db) {
274
300
  await ensure();
275
301
  await deliveries.deleteMany({ subscriptionId, status: "pending" });
276
302
  },
303
+ async claimTrigger(mark) {
304
+ await ensure();
305
+ try {
306
+ await triggers.insertOne({
307
+ _id: hookTriggerId(mark.subscriptionId, mark.recordId),
308
+ ...mark,
309
+ });
310
+ return true;
311
+ }
312
+ catch (err) {
313
+ if (isDuplicateKey(err))
314
+ return false;
315
+ throw err;
316
+ }
317
+ },
318
+ async releaseTrigger(subscriptionId, recordId) {
319
+ await ensure();
320
+ await triggers.deleteOne({ _id: hookTriggerId(subscriptionId, recordId) });
321
+ },
322
+ async deleteTriggers(subscriptionId) {
323
+ await ensure();
324
+ await triggers.deleteMany({ subscriptionId });
325
+ },
277
326
  async nextSeq(count) {
278
327
  await ensure();
279
328
  const doc = await seq.findOneAndUpdate({ _id: "delivery" }, { $inc: { n: count } }, { upsert: true, returnDocument: "after" });
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/hooks/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/hooks/store.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,14 @@ export type DeliverySettle = {
68
68
  leasedUntil: string | null;
69
69
  endpoint?: string;
70
70
  };
71
+ /** One subscription has taken this record. Independent of inbox delivery status. */
72
+ export type HookTriggerMark = {
73
+ subscriptionId: string;
74
+ recordId: string;
75
+ objectType: string;
76
+ contentType: string;
77
+ markedAt: string;
78
+ };
71
79
  export type HookStore = {
72
80
  saveSubscription(row: HookSubscription): Promise<void>;
73
81
  findSubscription(subscriptionId: string): Promise<HookSubscription | null>;
@@ -89,6 +97,14 @@ export type HookStore = {
89
97
  hasOlderOpen(endpoint: string, recordId: string, seq: number): Promise<boolean>;
90
98
  retargetPending(subscriptionId: string, endpoint: string): Promise<void>;
91
99
  deletePending(subscriptionId: string): Promise<void>;
100
+ /**
101
+ * Insert the mark if this subscription has not taken the record.
102
+ * Returns false when the mark is already there.
103
+ */
104
+ claimTrigger(mark: HookTriggerMark): Promise<boolean>;
105
+ /** Drop a mark so a failed enqueue can be retried. */
106
+ releaseTrigger(subscriptionId: string, recordId: string): Promise<void>;
107
+ deleteTriggers(subscriptionId: string): Promise<void>;
92
108
  nextSeq(count: number): Promise<number>;
93
109
  };
94
110
  export declare function toPublicSubscription(row: HookSubscription): HookSubscriptionPublic;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAGtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AA0GzF,MAAM,UAAU,oBAAoB,CAAC,GAAqB;IACxD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAiB;IAC/C,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,KAAe;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAGtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AA2HzF,MAAM,UAAU,oBAAoB,CAAC,GAAqB;IACxD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAiB;IAC/C,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,KAAe;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -2,7 +2,7 @@ import { snapshotHookLive } from "./hooks-live.js";
2
2
  import { hooksLiveHtml } from "./hooks-live-ui.js";
3
3
  export function registerHooksLiveRoutes(app, source) {
4
4
  app.get("/_live/hooks", async (_req, reply) => {
5
- return reply.type("text/html; charset=utf-8").send(hooksLiveHtml());
5
+ return reply.header("cache-control", "no-store").type("text/html; charset=utf-8").send(hooksLiveHtml());
6
6
  });
7
7
  app.get("/_live/api/hooks", async (req) => {
8
8
  const q = req.query;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-live-routes.js","sourceRoot":"","sources":["../src/hooks-live-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,uBAAuB,CAAC,GAAoB,EAAE,MAAsB;IAClF,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,GAAG,CAAC,KAA2B,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"hooks-live-routes.js","sourceRoot":"","sources":["../src/hooks-live-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,uBAAuB,CAAC,GAAoB,EAAE,MAAsB;IAClF,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5C,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,GAAG,CAAC,KAA2B,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -92,7 +92,7 @@ export function hooksLiveHtml() {
92
92
  <div class="meta">
93
93
  <div><strong>UI</strong> /_live/hooks</div>
94
94
  <div><strong>API</strong> /_live/api/hooks</div>
95
- <div><a href="/_live">← live view</a> · <a href="/_live/activity">activity</a> · <a href="/_live/changes">data changes</a></div>
95
+ <div><a href="/_live">← live view</a> · <a href="/_live/activity">activity</a> · <a href="/_live/arrivals">arrivals</a> · <a href="/_live/changes">data changes</a></div>
96
96
  </div>
97
97
  </header>
98
98
  <div class="toolbar">
@@ -1,22 +1,15 @@
1
- export declare const LAND_V2_DEPRECATION = "Memorix land V2: send complete fields now; incomplete legacy calls will be rejected when MEMORIX_LAND_V2=strict";
2
- /** Reject (strict) or ignore (compat) Memory ingress contentType. */
3
- export declare function rejectMemoryIngressContentType(body: Record<string, unknown>): {
4
- deprecated?: string;
5
- };
1
+ /** Reject Memory ingress contentType. Landing CT comes from metadata. */
2
+ export declare function rejectMemoryIngressContentType(body: Record<string, unknown>): void;
6
3
  /**
7
4
  * Resolve objectType for commit-page / pages:commit.
8
- * strict: require OT or streamId. compat/off: allow empty (legacy).
5
+ * Require OT or streamId.
9
6
  */
10
7
  export declare function requireCommitObjectType(args: {
11
8
  objectType?: unknown;
12
9
  streamId?: unknown;
13
10
  }): {
14
11
  objectType: string;
15
- deprecated?: string;
16
- };
17
- /** Workflow OT: required in strict; default work-items in compat/off with deprecation when missing. */
18
- export declare function resolveWorkflowObjectType(raw: unknown): {
19
- objectType: string;
20
- deprecated?: string;
21
12
  };
13
+ /** Workflow objectType is required. */
14
+ export declare function resolveWorkflowObjectType(raw: unknown): string;
22
15
  //# sourceMappingURL=land-v2-guards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"land-v2-guards.d.ts","sourceRoot":"","sources":["../src/land-v2-guards.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,oHACmF,CAAC;AAEpH,qEAAqE;AACrE,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAaA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAoB9C;AAED,uGAAuG;AACvG,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAUA"}
1
+ {"version":3,"file":"land-v2-guards.d.ts","sourceRoot":"","sources":["../src/land-v2-guards.ts"],"names":[],"mappings":"AAMA,yEAAyE;AACzE,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAOlF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAczB;AAED,uCAAuC;AACvC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAI9D"}
@@ -1,28 +1,17 @@
1
1
  /**
2
- * Shared MEMORIX_LAND_V2 request guards for Memory / workflow ingress.
3
- *
4
- * compat: prefer new contract; do not hard-block incomplete legacy calls.
5
- * strict: reject incomplete / forbidden fields.
2
+ * Memory / workflow ingress guards.
3
+ * Incomplete fields are rejected. Landing content type comes from metadata.
6
4
  */
7
- import { isLandV2Enabled, isLandV2Strict } from "@x12i/memorix-data";
8
5
  import { ServiceError } from "./errors.js";
9
- export const LAND_V2_DEPRECATION = "Memorix land V2: send complete fields now; incomplete legacy calls will be rejected when MEMORIX_LAND_V2=strict";
10
- /** Reject (strict) or ignore (compat) Memory ingress contentType. */
6
+ /** Reject Memory ingress contentType. Landing CT comes from metadata. */
11
7
  export function rejectMemoryIngressContentType(body) {
12
- if (!isLandV2Enabled())
13
- return {};
14
8
  if (body.contentType === undefined)
15
- return {};
16
- if (isLandV2Strict()) {
17
- throw new ServiceError("VALIDATION", "contentType must not be sent on Memory ingress; landing CT comes from metadata defaults", 400);
18
- }
19
- // compat: strip so land path never uses client CT
20
- delete body.contentType;
21
- return { deprecated: LAND_V2_DEPRECATION };
9
+ return;
10
+ throw new ServiceError("VALIDATION", "contentType must not be sent on Memory ingress; landing CT comes from metadata defaults", 400);
22
11
  }
23
12
  /**
24
13
  * Resolve objectType for commit-page / pages:commit.
25
- * strict: require OT or streamId. compat/off: allow empty (legacy).
14
+ * Require OT or streamId.
26
15
  */
27
16
  export function requireCommitObjectType(args) {
28
17
  const ot = typeof args.objectType === "string" ? args.objectType.trim() : "";
@@ -33,25 +22,13 @@ export function requireCommitObjectType(args) {
33
22
  // Memory resolveRouteForCommit uses streamId → route.objectType
34
23
  return { objectType: "" };
35
24
  }
36
- if (isLandV2Strict()) {
37
- throw new ServiceError("VALIDATION", "objectType required (or streamId that resolves a source stream)", 400);
38
- }
39
- if (isLandV2Enabled()) {
40
- return { objectType: ot, deprecated: LAND_V2_DEPRECATION };
41
- }
42
- return { objectType: ot };
25
+ throw new ServiceError("VALIDATION", "objectType required (or streamId that resolves a source stream)", 400);
43
26
  }
44
- /** Workflow OT: required in strict; default work-items in compat/off with deprecation when missing. */
27
+ /** Workflow objectType is required. */
45
28
  export function resolveWorkflowObjectType(raw) {
46
29
  const ot = typeof raw === "string" ? raw.trim() : "";
47
30
  if (ot)
48
- return { objectType: ot };
49
- if (isLandV2Strict()) {
50
- throw new ServiceError("VALIDATION", "objectType required", 400);
51
- }
52
- if (isLandV2Enabled()) {
53
- return { objectType: "work-items", deprecated: LAND_V2_DEPRECATION };
54
- }
55
- return { objectType: "work-items" };
31
+ return ot;
32
+ throw new ServiceError("VALIDATION", "objectType required", 400);
56
33
  }
57
34
  //# sourceMappingURL=land-v2-guards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"land-v2-guards.js","sourceRoot":"","sources":["../src/land-v2-guards.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC9B,iHAAiH,CAAC;AAEpH,qEAAqE;AACrE,MAAM,UAAU,8BAA8B,CAAC,IAA6B;IAG1E,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,yFAAyF,EACzF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,kDAAkD;IAClD,OAAO,IAAI,CAAC,WAAW,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAGvC;IACC,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,EAAE;QAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,gEAAgE;QAChE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,iEAAiE,EACjE,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC5B,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,yBAAyB,CAAC,GAAY;IAIpD,MAAM,EAAE,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,IAAI,EAAE;QAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAClC,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"land-v2-guards.js","sourceRoot":"","sources":["../src/land-v2-guards.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,yEAAyE;AACzE,MAAM,UAAU,8BAA8B,CAAC,IAA6B;IAC1E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO;IAC3C,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,yFAAyF,EACzF,GAAG,CACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAGvC;IACC,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,EAAE;QAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,gEAAgE;QAChE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,iEAAiE,EACjE,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,yBAAyB,CAAC,GAAY;IACpD,MAAM,EAAE,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,IAAI,YAAY,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-ops-nav.d.ts","sourceRoot":"","sources":["../src/live-ops-nav.ts"],"names":[],"mappings":"AAkDA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D"}
1
+ {"version":3,"file":"live-ops-nav.d.ts","sourceRoot":"","sources":["../src/live-ops-nav.ts"],"names":[],"mappings":"AA0DA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D"}
@@ -28,6 +28,10 @@ const NAV_HTML = `
28
28
  }
29
29
  </style>
30
30
  <nav id="memorix-ops-nav" aria-label="Memorix operator pages">
31
+ <a href="/_live/catalog">
32
+ <strong>Catalog</strong>
33
+ <span>Object types and content types per agent</span>
34
+ </a>
31
35
  <a href="/_live/activity">
32
36
  <strong>Activity</strong>
33
37
  <span>Pushed · Processed · Fetched</span>
@@ -40,6 +44,10 @@ const NAV_HTML = `
40
44
  <strong>Data changes</strong>
41
45
  <span>OT × CT change matrix</span>
42
46
  </a>
47
+ <a href="/_live/arrivals">
48
+ <strong>Arrivals</strong>
49
+ <span>New data by hour, object type, and content type</span>
50
+ </a>
43
51
  <a href="/_live/hooks">
44
52
  <strong>Hook inbox</strong>
45
53
  <span>Waiting callbacks and delivery status</span>
@@ -1 +1 @@
1
- {"version":3,"file":"live-ops-nav.js","sourceRoot":"","sources":["../src/live-ops-nav.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ChB,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"live-ops-nav.js","sourceRoot":"","sources":["../src/live-ops-nav.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDhB,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Durable Nexum analysis outbox in `{orgId}_operational.nexum-analysis-outbox`.
2
+ * Durable Nexum analysis outbox in `{org}-memorix-operational.nexum-analysis-outbox`.
3
3
  * Unique on address+revision; newer revisions supersede older queued/analyzing rows.
4
4
  */
5
5
  import type { Db } from "mongodb";
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/nexum-analysis/reconcile.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,eAAe,EACzB,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,MAAM,IAAI,CA4BZ"}
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/nexum-analysis/reconcile.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOtD,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,eAAe,EACzB,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,MAAM,IAAI,CA4BZ"}