@relaycast/engine 8.5.2-hotfix.4 → 8.5.2

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 (68) hide show
  1. package/dist/engine/action.d.ts.map +1 -1
  2. package/dist/engine/action.js +10 -19
  3. package/dist/engine/action.js.map +1 -1
  4. package/dist/engine/agent.d.ts +0 -1
  5. package/dist/engine/agent.d.ts.map +1 -1
  6. package/dist/engine/agent.js +4 -15
  7. package/dist/engine/agent.js.map +1 -1
  8. package/dist/engine/channel.d.ts +0 -2
  9. package/dist/engine/channel.d.ts.map +1 -1
  10. package/dist/engine/channel.js +9 -75
  11. package/dist/engine/channel.js.map +1 -1
  12. package/dist/engine/delivery.d.ts +0 -3
  13. package/dist/engine/delivery.d.ts.map +1 -1
  14. package/dist/engine/delivery.js +79 -165
  15. package/dist/engine/delivery.js.map +1 -1
  16. package/dist/engine/deliveryWrites.d.ts +0 -2
  17. package/dist/engine/deliveryWrites.d.ts.map +1 -1
  18. package/dist/engine/deliveryWrites.js +2 -7
  19. package/dist/engine/deliveryWrites.js.map +1 -1
  20. package/dist/engine/inboundWebhook.d.ts +0 -4
  21. package/dist/engine/inboundWebhook.d.ts.map +1 -1
  22. package/dist/engine/inboundWebhook.js +4 -24
  23. package/dist/engine/inboundWebhook.js.map +1 -1
  24. package/dist/engine/message.d.ts.map +1 -1
  25. package/dist/engine/message.js +6 -2
  26. package/dist/engine/message.js.map +1 -1
  27. package/dist/engine/node.d.ts.map +1 -1
  28. package/dist/engine/node.js +5 -26
  29. package/dist/engine/node.js.map +1 -1
  30. package/dist/engine/retention.d.ts +2 -29
  31. package/dist/engine/retention.d.ts.map +1 -1
  32. package/dist/engine/retention.js +0 -3
  33. package/dist/engine/retention.js.map +1 -1
  34. package/dist/engine/thread.js +1 -1
  35. package/dist/engine/thread.js.map +1 -1
  36. package/dist/index.d.ts +0 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/ports/database.d.ts +0 -4
  40. package/dist/ports/database.d.ts.map +1 -1
  41. package/dist/ports/database.js +0 -14
  42. package/dist/ports/database.js.map +1 -1
  43. package/dist/routes/action.js +3 -6
  44. package/dist/routes/action.js.map +1 -1
  45. package/dist/routes/agent.js +1 -3
  46. package/dist/routes/agent.js.map +1 -1
  47. package/dist/routes/channel.js +1 -10
  48. package/dist/routes/channel.js.map +1 -1
  49. package/dist/routes/deliveryRouting.d.ts +0 -1
  50. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  51. package/dist/routes/deliveryRouting.js +4 -8
  52. package/dist/routes/deliveryRouting.js.map +1 -1
  53. package/dist/routes/inboundWebhook.d.ts.map +1 -1
  54. package/dist/routes/inboundWebhook.js +4 -11
  55. package/dist/routes/inboundWebhook.js.map +1 -1
  56. package/dist/routes/relayfileInbound.d.ts +0 -2
  57. package/dist/routes/relayfileInbound.d.ts.map +1 -1
  58. package/dist/routes/relayfileInbound.js +3 -23
  59. package/dist/routes/relayfileInbound.js.map +1 -1
  60. package/package.json +2 -2
  61. package/dist/engine/mentions.d.ts +0 -3
  62. package/dist/engine/mentions.d.ts.map +0 -1
  63. package/dist/engine/mentions.js +0 -5
  64. package/dist/engine/mentions.js.map +0 -1
  65. package/dist/engine/rowidRetention.d.ts +0 -43
  66. package/dist/engine/rowidRetention.d.ts.map +0 -1
  67. package/dist/engine/rowidRetention.js +0 -225
  68. package/dist/engine/rowidRetention.js.map +0 -1
@@ -15,8 +15,6 @@ interface RelayfileEventPublic {
15
15
  revision?: string;
16
16
  origin?: string;
17
17
  provider?: string;
18
- providerEventType?: string;
19
- resourceRef?: string;
20
18
  correlationId?: string;
21
19
  timestamp?: string;
22
20
  contentHash?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"relayfileInbound.d.ts","sourceRoot":"","sources":["../../src/routes/relayfileInbound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAexC,eAAO,MAAM,sBAAsB,qDAAqB,CAAC;AA4CzD,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AA2PD,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,SAAa,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBvD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAgBnJ"}
1
+ {"version":3,"file":"relayfileInbound.d.ts","sourceRoot":"","sources":["../../src/routes/relayfileInbound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAexC,eAAO,MAAM,sBAAsB,qDAAqB,CAAC;AAoCzD,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAmPD,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,SAAa,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBvD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAWnJ"}
@@ -24,11 +24,6 @@ const createTargetSchema = z.object({
24
24
  provider: z.string().min(1),
25
25
  path_glob: z.string().trim().min(1),
26
26
  });
27
- const providerRecordEnvelopeSchema = z.object({
28
- provider: z.string(), objectType: z.string(), objectId: z.string(),
29
- deleted: z.boolean(), connectionId: z.string(),
30
- payload: z.record(z.string(), z.unknown()),
31
- });
32
27
  const relayfileSnapshotSchema = z.object({
33
28
  path: z.string().optional(),
34
29
  contentType: z.string().optional(),
@@ -43,8 +38,6 @@ const relayfileEventSchema = z.object({
43
38
  revision: z.string().optional(),
44
39
  origin: z.string().optional(),
45
40
  provider: z.string().optional(),
46
- providerEventType: z.string().optional(),
47
- resourceRef: z.string().optional(),
48
41
  correlationId: z.string().optional(),
49
42
  timestamp: z.string().optional(),
50
43
  contentHash: z.string().optional(),
@@ -161,7 +154,7 @@ relayfileInboundRoutes.post('/integrations/relayfile/inbound/:workspaceId/:chann
161
154
  actorId: 'relayfile-inbound',
162
155
  scope: `relayfile-inbound:${channelId}`,
163
156
  key: deliveryEventId,
164
- fingerprint: JSON.stringify({ path: event.path, revision: event.revision, contentHash: event.contentHash, providerEventType: event.providerEventType, resourceRef: event.resourceRef }),
157
+ fingerprint: JSON.stringify({ path: event.path, revision: event.revision, contentHash: event.contentHash }),
165
158
  kv: c.get('engine').kv,
166
159
  requireKv: true,
167
160
  ttlSeconds: IDEMPOTENCY_TTL_SECONDS,
@@ -178,15 +171,11 @@ relayfileInboundRoutes.post('/integrations/relayfile/inbound/:workspaceId/:chann
178
171
  revision: event.revision,
179
172
  eventId: deliveryEventId,
180
173
  provider,
181
- ...(event.providerEventType ? { provider_event_type: event.providerEventType } : {}),
182
- ...(event.resourceRef ? { resource_ref: event.resourceRef } : {}),
183
174
  contentHash: event.contentHash,
184
175
  },
185
176
  provider,
186
177
  path: event.path,
187
178
  event: event.type,
188
- ...(event.providerEventType ? { provider_event_type: event.providerEventType } : {}),
189
- ...(event.resourceRef ? { resource_ref: event.resourceRef } : {}),
190
179
  record: message.record,
191
180
  },
192
181
  }, { mailbox }),
@@ -234,10 +223,6 @@ relayfileInboundRoutes.post('/integrations/relayfile/inbound/:workspaceId/:chann
234
223
  }
235
224
  catch (err) {
236
225
  const code = err.code;
237
- if (code === 'mailbox_full') {
238
- c.header('Retry-After', '30');
239
- return jsonError(c, 'mailbox_full', 'A recipient mailbox is full; retry this event', 503);
240
- }
241
226
  if (code === 'idempotency_in_progress') {
242
227
  return jsonOk(c, { skipped: 'duplicate_in_progress' });
243
228
  }
@@ -307,17 +292,12 @@ export async function verifyRelayfileSignature(headers, body, secret, nowMs = Da
307
292
  return { ok: true };
308
293
  }
309
294
  export function formatRelayfileEventMessage(event, provider) {
310
- const stored = parseSnapshotRecord(event.snapshot);
311
- const envelope = providerRecordEnvelopeSchema.safeParse(stored);
312
- // Cloud's sync writer stores canonical records in a provider envelope.
313
- // Unwrap only that complete shape; an ordinary record's payload property
314
- // is data. Authenticated event semantics still come exclusively from event.
315
- const record = envelope.success && envelope.data.provider === provider ? envelope.data.payload : stored;
295
+ const record = parseSnapshotRecord(event.snapshot);
316
296
  const author = recordAuthor(record) ?? provider;
317
297
  const title = recordTitle(record);
318
298
  const body = recordBody(record);
319
299
  const providerLabel = provider.charAt(0).toUpperCase() + provider.slice(1);
320
- const lines = [event.providerEventType ? `${providerLabel} ${event.providerEventType}` : `${providerLabel} update`];
300
+ const lines = [`${providerLabel} update`];
321
301
  if (title)
322
302
  lines.push(title);
323
303
  if (body && body !== title)
@@ -1 +1 @@
1
- {"version":3,"file":"relayfileInbound.js","sourceRoot":"","sources":["../../src/routes/relayfileInbound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,IAAI,EAAU,CAAC;AAEzD,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,MAAM,wBAAwB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAC5C,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAElD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IAClE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC,WAAW,EAAE,CAAC;AA2BjB,sBAAsB,CAAC,IAAI,CAAC,wCAAwC,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,kBAAkB,EAAE,uCAAuC,CAAC,CAAC;IACnG,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAEvC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,YAAY,CAAC,CAAC,EAAE,mBAAmB,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACtE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,CAAC,EAAE,+BAA+B,EAAE,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,MAAM,EAAE;QACxD,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,sCAAsC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3I,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE5C,OAAO,WAAW,CAAC,CAAC,EAAE;QACpB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,MAAM;QACN,YAAY,EAAE,SAAS,CAAC,EAAE;QAC1B,UAAU,EAAE,OAAO,CAAC,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,QAAQ;QACR,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,sBAAsB,CAAC,IAAI,CAAC,yDAAyD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjG,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,4CAA4C,EAAE,GAAG,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACtE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,CAAC,EAAE,+BAA+B,EAAE,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IAC1F,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC,CAAC,EAAE,mBAAmB,EAAE,2CAA2C,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACnI,OAAO,SAAS,CAAC,CAAC,EAAE,cAAc,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,WAAoB,CAAC;IACzB,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAY,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;IAC/B,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC;IAElF,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,sEAAsE;IACtE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACxG,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,WAAW;YACX,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,qBAAqB,SAAS,EAAE;YACvC,GAAG,EAAE,eAAe;YACpB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YACvL,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE;YACtB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,uBAAuB;YACnC,SAAS,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE;gBACnG,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,aAAa,QAAQ,EAAE;gBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,aAAa,QAAQ,EAAE;gBAClC,WAAW,EAAE,aAAa,QAAQ,EAAE;gBACpC,OAAO,EAAE;oBACP,SAAS,EAAE;wBACT,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC;wBACpC,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,eAAe;wBACxB,QAAQ;wBACR,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpF,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjE,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC/B;oBACD,QAAQ;oBACR,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF,EAAE,EAAE,OAAO,EAAE,CAAC;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG;gBAChB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAC1B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;gBAC5B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;gBACjC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;gBACtB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;gBAC7B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;aAC/B,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACvF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;oBACtD,YAAY,EAAE,WAAW;oBACzB,UAAU,EAAE,SAAS;oBACrB,QAAQ;oBACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,oEAAoE;YACpE,sEAAsE;YACtE,4EAA4E;YAC5E,4EAA4E;YAC5E,4EAA4E;YAC5E,8EAA8E;YAC9E,eAAe,CACb,CAAC,EACD,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,EACxE,0BAA0B,CAC3B,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAC3C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,eAAe,CACb,CAAC,EACD,qBAAqB,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC,EACnF,8BAA8B,CAC/B,CAAC;YACJ,CAAC;YACD,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBAC9E,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAAiC,CAAC,IAAI,CAAC;QACrD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC9B,OAAO,SAAS,CAAC,CAAC,EAAE,cAAc,EAAE,+CAA+C,EAAE,GAAG,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,0DAA0D,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAClI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAC5H,OAAO,SAAS,CAAC,CAAC,EAAE,yBAAyB,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YAChD,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,QAAQ;YACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;QACH,4EAA4E;QAC5E,8EAA8E;QAC9E,+EAA+E;QAC/E,0EAA0E;QAC1E,OAAO,SAAS,CAAC,CAAC,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,gBAAgB,CAAC,EAA6B,EAAE,WAAmB,EAAE,IAAY;IAC9F,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;SAChD,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,EAA6B,EAAE,WAAmB,EAAE,SAAiB;IACjG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;SAChD,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAc,EACd,KAAqF;IAErF,MAAM,KAAK,GAAG,GAAG,YAAY,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACvI,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAgB,EAChB,IAAiB,EACjB,MAAc,EACd,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;IAElB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC9E,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACrF,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,WAAW;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAEhG,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACvI,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC7G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAA2B,EAAE,QAAgB;IACvF,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChE,uEAAuE;IACvE,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACxG,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,SAAS,CAAC,CAAC;IACpH,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuC;IAClE,IAAI,CAAC,QAAQ,EAAE,OAAO;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAe;IACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,WAAW,CAChB,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,QAAQ,EACV,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EACtB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EACvB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACpE,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,MAAe;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9E,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,GAAG,MAAiB;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/G,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAY;IAClD,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,cAAc,KAAK,KAAK,IAAI,cAAc,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC/E,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,cAAc,KAAK,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;IAC9C,OAAO,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAgB,EAChB,QAAgB;IAEhB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IACpE,IAAI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;QAClG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACxC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;QAC1B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAa,EAAE,CAAa;IACrD,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB;IACnC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"relayfileInbound.js","sourceRoot":"","sources":["../../src/routes/relayfileInbound.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relaycast/engine",
3
- "version": "8.5.2-hotfix.4",
3
+ "version": "8.5.2",
4
4
  "type": "module",
5
5
  "description": "Portable, platform-agnostic engine for Relaycast — channels, threads, DMs, presence, real-time events. Runs on Node + SQLite (self-host) or behind a Cloudflare Durable Object adapter (hosted).",
6
6
  "bin": {
@@ -60,7 +60,7 @@
60
60
  "dependencies": {
61
61
  "@hono/node-server": "^1.13.7",
62
62
  "@relaycast/a2a": "8.5.2",
63
- "@relaycast/types": "8.7.0",
63
+ "@relaycast/types": "8.5.2",
64
64
  "better-sqlite3": "^11.10.0",
65
65
  "drizzle-orm": "^0.45.1",
66
66
  "hono": "^4.11.9",
@@ -1,3 +0,0 @@
1
- /** Shared by live delivery and durable replay; emails and escaped handles are not mentions. */
2
- export declare function parseMessageMentions(text: string): string[];
3
- //# sourceMappingURL=mentions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../src/engine/mentions.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D"}
@@ -1,5 +0,0 @@
1
- /** Shared by live delivery and durable replay; emails and escaped handles are not mentions. */
2
- export function parseMessageMentions(text) {
3
- return [...new Set([...text.matchAll(/(?:^|\s)@([\w-]+)/g)].map(match => match[1]))];
4
- }
5
- //# sourceMappingURL=mentions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mentions.js","sourceRoot":"","sources":["../../src/engine/mentions.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC"}
@@ -1,43 +0,0 @@
1
- import { z } from 'zod';
2
- import type { EngineDb } from '../ports/database.js';
3
- import type { PruneOptions, PruneResult } from './retention.js';
4
- declare const stateSchema: z.ZodObject<{
5
- version: z.ZodLiteral<1>;
6
- next: z.ZodNumber;
7
- tables: z.ZodRecord<z.ZodString, z.ZodObject<{
8
- cursor: z.ZodOptional<z.ZodNumber>;
9
- high: z.ZodOptional<z.ZodNumber>;
10
- }, z.core.$strip>>;
11
- }, z.core.$strip>;
12
- export type RowidRetentionState = z.infer<typeof stateSchema>;
13
- /** Host-owned durable state; the host MUST serialize callers for this database.
14
- * save resolves only after persistence. No new engine table/index is required.
15
- */
16
- export interface RetentionCursorStore {
17
- load(): Promise<unknown>;
18
- save(state: RowidRetentionState): Promise<void>;
19
- }
20
- /** Hard D1 statement ceiling for one cursor-mode retention invocation.
21
- *
22
- * Per table: one high-water SELECT, then at most five page SELECTs and twenty
23
- * ten-row DELETEs per page. The opt-in active recovery adds at most four
24
- * indexed set-based DELETEs. cursorStore persistence is host-owned, not D1.
25
- */
26
- export declare const ROWID_RETENTION_D1_QUERY_CEILING: number;
27
- /**
28
- * Schema-free recovery mode. Rowid keyset pages bound candidate READS even when
29
- * no history is expired. TTLs/eligibility are applied AFTER the materialized
30
- * page, so LIMIT cannot hide a full-history scan. This deliberately trades scan
31
- * throughput for predictable candidate work while compact indexes are blocked.
32
- *
33
- * Rowid high-water makes each traversal finite under new writes. Retained rows
34
- * are revisited after wrap. Fairness is persisted before a page; its cursor only
35
- * moves after all admitted deletes settle. Failures replay a page, never skip
36
- * uncommitted rows. Message DELETE cascades may still be large; this is NOT a
37
- * bound on cascade writes or a replacement for per-tenant database isolation.
38
- */
39
- export declare function pruneRowidPages(db: EngineDb, opts: PruneOptions & {
40
- cursorStore: RetentionCursorStore;
41
- }): Promise<PruneResult>;
42
- export {};
43
- //# sourceMappingURL=rowidRetention.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rowidRetention.d.ts","sourceRoot":"","sources":["../../src/engine/rowidRetention.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,gBAAgB,CAAC;AAInF,QAAA,MAAM,WAAW;;;;;;;iBAIf,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAqDD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAMP,CAAC;AA6DvC;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG;IAAE,WAAW,EAAE,oBAAoB,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAsGpI"}
@@ -1,225 +0,0 @@
1
- import { sql } from 'drizzle-orm';
2
- import { z } from 'zod';
3
- import { snowflakeIdLowerBound } from './snowflake.js';
4
- const safeRowid = z.number().int().min(Number.MIN_SAFE_INTEGER).max(Number.MAX_SAFE_INTEGER);
5
- const stateSchema = z.object({
6
- version: z.literal(1),
7
- next: z.number().int().min(0).max(4),
8
- tables: z.record(z.string(), z.object({ cursor: safeRowid.optional(), high: safeRowid.optional() })),
9
- });
10
- const settled = "deliveries.status IN ('acked', 'failed', 'dead_lettered')";
11
- // Table-qualified: `workspaces` also has an `expires_at`, and the outer page
12
- // query joins it, so a bare column is ambiguous there. The page builder rewrites
13
- // `deliveries.` to `page.` for the SELECT and leaves it intact for the DELETE.
14
- const DEFAULT_EXPIRED_DELIVERY_GRACE_DAYS = 7;
15
- // Deliveries deletion in cursor mode is settled-only by default. Active
16
- // queued/delivered cleanup is opt-in and handled exclusively by the indexed,
17
- // set-based recovery path below.
18
- const tables = [
19
- { name: 'messages', result: 'messages', columns: 'id, workspace_id',
20
- setting: 'message_ttl_days', fallback: 'messageTtlDays', snowflake: true,
21
- guard: 'NOT EXISTS (SELECT 1 FROM messages replies WHERE replies.thread_id = messages.id)' },
22
- { name: 'deliveries', result: 'deliveries', columns: 'id, workspace_id, created_at, status, expires_at',
23
- setting: 'delivery_ttl_days', fallback: 'deliveryTtlDays', guard: settled },
24
- { name: 'message_logs', result: 'messageLogs', columns: 'id, workspace_id',
25
- setting: 'message_log_ttl_days', fallback: 'messageLogTtlDays', snowflake: true, guard: '1' },
26
- { name: 'workspace_events', result: 'workspaceEvents', columns: 'workspace_id, seq, created_at',
27
- setting: 'workspace_event_ttl_days', fallback: 'workspaceEventTtlDays',
28
- guard: 'EXISTS (SELECT 1 FROM workspace_events hw WHERE hw.workspace_id = workspace_events.workspace_id AND hw.seq > workspace_events.seq LIMIT 1)' },
29
- { name: 'read_receipts', result: 'readReceipts', columns: 'message_id, agent_id',
30
- guard: 'NOT EXISTS (SELECT 1 FROM messages m WHERE m.id = read_receipts.message_id)' },
31
- ];
32
- const MAX_ACTIVE_EXPIRY_RECOVERY_BATCHES = 4;
33
- const ACTIVE_EXPIRY_RECOVERY_DELETE_LIMIT = 1000;
34
- const ROWID_PAGE_LIMIT = 200;
35
- const ROWID_MAX_BATCHES_PER_TABLE = 5;
36
- const ROWID_DELETE_CHUNK_SIZE = 10;
37
- /** Hard D1 statement ceiling for one cursor-mode retention invocation.
38
- *
39
- * Per table: one high-water SELECT, then at most five page SELECTs and twenty
40
- * ten-row DELETEs per page. The opt-in active recovery adds at most four
41
- * indexed set-based DELETEs. cursorStore persistence is host-owned, not D1.
42
- */
43
- export const ROWID_RETENTION_D1_QUERY_CEILING = tables.length * (1
44
- + ROWID_MAX_BATCHES_PER_TABLE
45
- + ROWID_MAX_BATCHES_PER_TABLE * Math.ceil(ROWID_PAGE_LIMIT / ROWID_DELETE_CHUNK_SIZE))
46
- + MAX_ACTIVE_EXPIRY_RECOVERY_BATCHES;
47
- async function recoverExpiredActiveDeliveriesSetBased(db, nowMs, graceDays, opts) {
48
- const graceMs = Math.max(0, Math.floor(graceDays * 86_400_000));
49
- const cutoffMs = nowMs - graceMs;
50
- const cutoffSeconds = Math.floor(cutoffMs / 1000);
51
- // Use the existing index that already narrows to only active (queued/delivered).
52
- // We still re-check queued/delivered + expires_at in the outer DELETE predicate
53
- // to avoid expiry-extension races between selecting candidate ids and deleting.
54
- const batches = Math.max(1, Math.min(Math.floor(opts.maxBatches), MAX_ACTIVE_EXPIRY_RECOVERY_BATCHES));
55
- let deleted = 0;
56
- for (let batch = 0; batch < batches; batch++) {
57
- const changed = await db.all(sql `
58
- DELETE FROM deliveries
59
- WHERE (
60
- status IN ('queued', 'delivered')
61
- AND expires_at IS NOT NULL
62
- AND expires_at < ${cutoffSeconds}
63
- )
64
- AND id IN (
65
- SELECT id
66
- FROM deliveries INDEXED BY idx_deliveries_active_expiry
67
- WHERE status IN ('queued', 'delivered')
68
- AND expires_at IS NOT NULL
69
- AND expires_at < ${cutoffSeconds}
70
- ORDER BY expires_at, id
71
- LIMIT ${ACTIVE_EXPIRY_RECOVERY_DELETE_LIMIT}
72
- )
73
- RETURNING id AS _id
74
- `);
75
- deleted += changed.length;
76
- if (changed.length < ACTIVE_EXPIRY_RECOVERY_DELETE_LIMIT)
77
- break;
78
- }
79
- return deleted;
80
- }
81
- function bounded(value, fallback, max) {
82
- return value !== undefined && Number.isFinite(value) ? Math.max(1, Math.min(max, Math.floor(value))) : fallback;
83
- }
84
- function expired(row, table, defaults, now) {
85
- if (!table.setting || !table.fallback)
86
- return true;
87
- const settings = row.retention ? JSON.parse(row.retention) : {};
88
- const override = settings?.[table.setting];
89
- const days = override === undefined ? defaults[table.fallback] : override;
90
- if (days == null || !Number.isFinite(days) || days <= 0)
91
- return false;
92
- const cutoff = now - days * 86_400_000;
93
- if (!Number.isFinite(cutoff))
94
- return false;
95
- if (!table.snowflake)
96
- return row.created_at * 1000 < cutoff;
97
- const bound = snowflakeIdLowerBound(cutoff);
98
- return row.id.length < bound.length || (row.id.length === bound.length && row.id < bound);
99
- }
100
- /**
101
- * Schema-free recovery mode. Rowid keyset pages bound candidate READS even when
102
- * no history is expired. TTLs/eligibility are applied AFTER the materialized
103
- * page, so LIMIT cannot hide a full-history scan. This deliberately trades scan
104
- * throughput for predictable candidate work while compact indexes are blocked.
105
- *
106
- * Rowid high-water makes each traversal finite under new writes. Retained rows
107
- * are revisited after wrap. Fairness is persisted before a page; its cursor only
108
- * moves after all admitted deletes settle. Failures replay a page, never skip
109
- * uncommitted rows. Message DELETE cascades may still be large; this is NOT a
110
- * bound on cascade writes or a replacement for per-tenant database isolation.
111
- */
112
- export async function pruneRowidPages(db, opts) {
113
- const now = (opts.now ?? new Date()).getTime();
114
- if (!Number.isFinite(now))
115
- throw new Error('Invalid retention clock');
116
- // Preserve existing cursor-mode ceilings exactly: 200 rows/page and 5
117
- // batches/table.
118
- const activeExpiryRecovery = opts.activeExpiryRecovery === true;
119
- const limit = bounded(opts.batchLimit, ROWID_PAGE_LIMIT, ROWID_PAGE_LIMIT);
120
- const pages = bounded(opts.maxBatches, ROWID_MAX_BATCHES_PER_TABLE, ROWID_MAX_BATCHES_PER_TABLE) * tables.length;
121
- const deadline = Date.now() + bounded(opts.maxDurationMs, 10_000, 30_000);
122
- const defaults = {
123
- messageTtlDays: null, deliveryTtlDays: 90, messageLogTtlDays: 90, workspaceEventTtlDays: 30,
124
- ...Object.fromEntries(Object.entries(opts.defaults ?? {}).filter(([, value]) => value !== undefined)),
125
- };
126
- const grace = opts.expiredDeliveryGraceDays ?? DEFAULT_EXPIRED_DELIVERY_GRACE_DAYS;
127
- const saved = await opts.cursorStore.load();
128
- // Corrupt state is an error, not permission to restart expensive work or
129
- // drop an unknown future cursor format during a rollback.
130
- const state = saved == null
131
- ? { version: 1, next: 0, tables: {} } : stateSchema.parse(saved);
132
- const save = () => opts.cursorStore.save(structuredClone(state));
133
- const result = { messages: 0, deliveries: 0, messageLogs: 0, readReceipts: 0, workspaceEvents: 0 };
134
- const finished = new Set();
135
- // Opt-in active expiry recovery BEFORE the rowid crawl so a slow scan
136
- // cannot starve active cleanup.
137
- if (activeExpiryRecovery) {
138
- const maxBatches = bounded(opts.activeExpiryRecoveryMaxBatches, MAX_ACTIVE_EXPIRY_RECOVERY_BATCHES, MAX_ACTIVE_EXPIRY_RECOVERY_BATCHES);
139
- result.deliveries += await recoverExpiredActiveDeliveriesSetBased(db, now, grace, { maxBatches });
140
- }
141
- for (let step = 0; step < pages && Date.now() < deadline; step++) {
142
- const index = state.next;
143
- state.next = (index + 1) % tables.length;
144
- if (finished.has(index))
145
- continue;
146
- const table = tables[index];
147
- await save();
148
- const position = state.tables[table.name] ??= {};
149
- if (Date.now() >= deadline)
150
- break;
151
- if (position.high === undefined) {
152
- const [last] = await db.all(sql `SELECT rowid AS _rowid FROM ${sql.raw(table.name)} NOT INDEXED ORDER BY rowid DESC LIMIT 1`);
153
- if (!last) {
154
- delete state.tables[table.name];
155
- finished.add(index);
156
- await save();
157
- continue;
158
- }
159
- position.high = safeRowid.parse(last._rowid);
160
- }
161
- if (Date.now() >= deadline)
162
- break;
163
- const page = await db.all(sql `
164
- WITH page AS MATERIALIZED (
165
- SELECT rowid AS _rowid, ${sql.raw(table.columns)} FROM ${sql.raw(table.name)} NOT INDEXED
166
- WHERE rowid <= ${position.high}
167
- ${position.cursor === undefined ? sql `` : sql `AND rowid > ${position.cursor}`}
168
- ORDER BY rowid LIMIT ${limit}
169
- ) SELECT page.*, ${sql.raw(table.guard.replaceAll(table.name + '.', 'page.'))} AS eligible,
170
- ${table.setting ? sql `w.retention` : sql `NULL`} AS retention FROM page
171
- ${table.setting ? sql `LEFT JOIN workspaces w ON w.id = page.workspace_id` : sql ``}
172
- ORDER BY page._rowid`);
173
- for (const row of page)
174
- safeRowid.parse(row._rowid);
175
- // Keep exact row identities alongside rowid: SQLite may reuse a deleted
176
- // rowid between the candidate read and a later DELETE.
177
- const removable = page.filter(row => row.eligible && expired(row, table, defaults, now));
178
- // At most seven bindings per row, kept below D1's 100-variable limit.
179
- // Small atomic chunks also avoid one subrequest per retained-history row.
180
- for (let offset = 0; offset < removable.length; offset += ROWID_DELETE_CHUNK_SIZE) {
181
- if (Date.now() >= deadline) {
182
- await save();
183
- return result;
184
- }
185
- const chunk = removable.slice(offset, offset + ROWID_DELETE_CHUNK_SIZE);
186
- const guarded = chunk.map(row => {
187
- const identity = table.result === 'workspaceEvents'
188
- ? sql `workspace_id = ${row.workspace_id} AND seq = ${row.seq}`
189
- : table.result === 'readReceipts'
190
- ? sql `message_id = ${row.message_id} AND agent_id = ${row.agent_id}`
191
- : sql `id = ${row.id} AND workspace_id = ${row.workspace_id}`;
192
- // A policy edit after the read must not authorize a stale deletion.
193
- // Exact raw-policy comparison is conservative (even whitespace edits
194
- // defer the row to the next traversal), and uses the workspace PK.
195
- // A missing workspace also has the default policy. workspace_events
196
- // intentionally has no workspace FK, so its orphan rows must age out.
197
- // The scalar PK lookup returns NULL for absence, but a newly installed
198
- // non-default policy still prevents deletion from the stale snapshot.
199
- const policyGuard = table.setting ? sql `AND (SELECT w.retention FROM workspaces w
200
- WHERE w.id = ${row.workspace_id}) IS ${row.retention}` : sql ``;
201
- const timeGuard = table.setting && !table.snowflake ? sql `AND created_at = ${row.created_at}` : sql ``;
202
- // The deliveries page is guarded as settled-only (default cursor mode),
203
- // but the opt-in active recovery path re-checks status/expiry again.
204
- // Always pin the exact status read so concurrent status changes
205
- // cannot authorize a stale deletion.
206
- const statusGuard = table.result === 'deliveries' ? sql `AND status = ${row.status}` : sql ``;
207
- return sql `(rowid = ${row._rowid} AND ${identity} ${policyGuard} ${timeGuard} ${statusGuard})`;
208
- });
209
- const deleted = await db.all(sql `DELETE FROM ${sql.raw(table.name)} NOT INDEXED
210
- WHERE (${sql.join(guarded, sql ` OR `)}) AND ${sql.raw(table.guard)} RETURNING 1`);
211
- result[table.result] += deleted.length;
212
- }
213
- if (page.length < limit || page.at(-1)?._rowid === position.high) {
214
- delete state.tables[table.name];
215
- finished.add(index);
216
- }
217
- else
218
- position.cursor = page.at(-1)._rowid;
219
- await save();
220
- if (finished.size === tables.length)
221
- break;
222
- }
223
- return result;
224
- }
225
- //# sourceMappingURL=rowidRetention.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rowidRetention.js","sourceRoot":"","sources":["../../src/engine/rowidRetention.ts"],"names":[],"mappings":"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"}