@relaycast/engine 11.1.1 → 12.1.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 (178) hide show
  1. package/dist/adapters/node/index.d.ts +3 -3
  2. package/dist/adapters/node/index.d.ts.map +1 -1
  3. package/dist/adapters/node/index.js +2 -3
  4. package/dist/adapters/node/index.js.map +1 -1
  5. package/dist/adapters/node/kv.d.ts +0 -1
  6. package/dist/adapters/node/kv.d.ts.map +1 -1
  7. package/dist/adapters/node/kv.js +0 -17
  8. package/dist/adapters/node/kv.js.map +1 -1
  9. package/dist/adapters/node/presence.d.ts +18 -0
  10. package/dist/adapters/node/presence.d.ts.map +1 -1
  11. package/dist/adapters/node/presence.js +82 -0
  12. package/dist/adapters/node/presence.js.map +1 -1
  13. package/dist/adapters/node/realtime.d.ts +4 -0
  14. package/dist/adapters/node/realtime.d.ts.map +1 -1
  15. package/dist/adapters/node/realtime.js +32 -5
  16. package/dist/adapters/node/realtime.js.map +1 -1
  17. package/dist/db/migrations/0077_drop_workspace_plan.sql +4 -0
  18. package/dist/db/schema.d.ts +2 -21
  19. package/dist/db/schema.d.ts.map +1 -1
  20. package/dist/db/schema.js +0 -1
  21. package/dist/db/schema.js.map +1 -1
  22. package/dist/engine/a2a.d.ts +3 -0
  23. package/dist/engine/a2a.d.ts.map +1 -1
  24. package/dist/engine/a2a.js +1 -0
  25. package/dist/engine/a2a.js.map +1 -1
  26. package/dist/engine/action.d.ts +14 -9
  27. package/dist/engine/action.d.ts.map +1 -1
  28. package/dist/engine/action.js +335 -74
  29. package/dist/engine/action.js.map +1 -1
  30. package/dist/engine/agent.d.ts +9 -3
  31. package/dist/engine/agent.d.ts.map +1 -1
  32. package/dist/engine/agent.js +21 -3
  33. package/dist/engine/agent.js.map +1 -1
  34. package/dist/engine/delivery.d.ts.map +1 -1
  35. package/dist/engine/delivery.js +4 -0
  36. package/dist/engine/delivery.js.map +1 -1
  37. package/dist/engine/eventDelivery.d.ts +1 -1
  38. package/dist/engine/inboundWebhook.d.ts +10 -0
  39. package/dist/engine/inboundWebhook.d.ts.map +1 -1
  40. package/dist/engine/inboundWebhook.js +30 -4
  41. package/dist/engine/inboundWebhook.js.map +1 -1
  42. package/dist/engine/inbox.d.ts.map +1 -1
  43. package/dist/engine/inbox.js +17 -0
  44. package/dist/engine/inbox.js.map +1 -1
  45. package/dist/engine/invocationClaim.d.ts +32 -0
  46. package/dist/engine/invocationClaim.d.ts.map +1 -0
  47. package/dist/engine/invocationClaim.js +42 -0
  48. package/dist/engine/invocationClaim.js.map +1 -0
  49. package/dist/engine/messageMetadata.d.ts +2 -0
  50. package/dist/engine/messageMetadata.d.ts.map +1 -1
  51. package/dist/engine/messageMetadata.js +3 -2
  52. package/dist/engine/messageMetadata.js.map +1 -1
  53. package/dist/engine/node.d.ts +12 -2
  54. package/dist/engine/node.d.ts.map +1 -1
  55. package/dist/engine/node.js +83 -4
  56. package/dist/engine/node.js.map +1 -1
  57. package/dist/engine/presence.d.ts +173 -1
  58. package/dist/engine/presence.d.ts.map +1 -1
  59. package/dist/engine/presence.js +81 -4
  60. package/dist/engine/presence.js.map +1 -1
  61. package/dist/engine/registrationAdmission.d.ts +40 -0
  62. package/dist/engine/registrationAdmission.d.ts.map +1 -0
  63. package/dist/engine/registrationAdmission.js +78 -0
  64. package/dist/engine/registrationAdmission.js.map +1 -0
  65. package/dist/engine/taskInvocation.d.ts +1 -1
  66. package/dist/engine/workspace.d.ts +26 -3
  67. package/dist/engine/workspace.d.ts.map +1 -1
  68. package/dist/engine/workspace.js +108 -8
  69. package/dist/engine/workspace.js.map +1 -1
  70. package/dist/engine/workspaceDeliveryPolicy.d.ts +1 -2
  71. package/dist/engine/workspaceDeliveryPolicy.d.ts.map +1 -1
  72. package/dist/engine/workspaceDeliveryPolicy.js +2 -5
  73. package/dist/engine/workspaceDeliveryPolicy.js.map +1 -1
  74. package/dist/engine/workspaceDrain.d.ts +38 -0
  75. package/dist/engine/workspaceDrain.d.ts.map +1 -0
  76. package/dist/engine/workspaceDrain.js +202 -0
  77. package/dist/engine/workspaceDrain.js.map +1 -0
  78. package/dist/engine.d.ts +1 -1
  79. package/dist/engine.d.ts.map +1 -1
  80. package/dist/engine.js +30 -2
  81. package/dist/engine.js.map +1 -1
  82. package/dist/entrypoints/node.d.ts +2 -2
  83. package/dist/entrypoints/node.d.ts.map +1 -1
  84. package/dist/entrypoints/node.js +1 -1
  85. package/dist/entrypoints/node.js.map +1 -1
  86. package/dist/env.d.ts +5 -5
  87. package/dist/env.d.ts.map +1 -1
  88. package/dist/index.d.ts +4 -4
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +5 -6
  91. package/dist/index.js.map +1 -1
  92. package/dist/lib/admissionError.d.ts +11 -0
  93. package/dist/lib/admissionError.d.ts.map +1 -0
  94. package/dist/lib/admissionError.js +14 -0
  95. package/dist/lib/admissionError.js.map +1 -0
  96. package/dist/lib/engineDiagnostics.d.ts +26 -0
  97. package/dist/lib/engineDiagnostics.d.ts.map +1 -0
  98. package/dist/lib/engineDiagnostics.js +100 -0
  99. package/dist/lib/engineDiagnostics.js.map +1 -0
  100. package/dist/lib/httpError.d.ts.map +1 -1
  101. package/dist/lib/httpError.js +9 -4
  102. package/dist/lib/httpError.js.map +1 -1
  103. package/dist/middleware/admission.d.ts +49 -0
  104. package/dist/middleware/admission.d.ts.map +1 -0
  105. package/dist/middleware/admission.js +100 -0
  106. package/dist/middleware/admission.js.map +1 -0
  107. package/dist/middleware/rateLimit.d.ts +2 -0
  108. package/dist/middleware/rateLimit.d.ts.map +1 -1
  109. package/dist/middleware/rateLimit.js +29 -25
  110. package/dist/middleware/rateLimit.js.map +1 -1
  111. package/dist/ports/admission.d.ts +80 -0
  112. package/dist/ports/admission.d.ts.map +1 -0
  113. package/dist/ports/admission.js +2 -0
  114. package/dist/ports/admission.js.map +1 -0
  115. package/dist/ports/diagnostics.d.ts +42 -0
  116. package/dist/ports/diagnostics.d.ts.map +1 -0
  117. package/dist/ports/diagnostics.js +13 -0
  118. package/dist/ports/diagnostics.js.map +1 -0
  119. package/dist/ports/index.d.ts +18 -4
  120. package/dist/ports/index.d.ts.map +1 -1
  121. package/dist/ports/index.js.map +1 -1
  122. package/dist/ports/kv.d.ts +1 -16
  123. package/dist/ports/kv.d.ts.map +1 -1
  124. package/dist/ports/presence.d.ts +14 -0
  125. package/dist/ports/presence.d.ts.map +1 -1
  126. package/dist/ports/realtime.d.ts +18 -0
  127. package/dist/ports/realtime.d.ts.map +1 -1
  128. package/dist/ports/realtime.js.map +1 -1
  129. package/dist/ports/workspaceDelivery.d.ts +3 -4
  130. package/dist/ports/workspaceDelivery.d.ts.map +1 -1
  131. package/dist/routes/a2a.d.ts.map +1 -1
  132. package/dist/routes/a2a.js +2 -0
  133. package/dist/routes/a2a.js.map +1 -1
  134. package/dist/routes/action.js +3 -0
  135. package/dist/routes/action.js.map +1 -1
  136. package/dist/routes/agent.d.ts.map +1 -1
  137. package/dist/routes/agent.js +5 -1
  138. package/dist/routes/agent.js.map +1 -1
  139. package/dist/routes/dm.js +3 -3
  140. package/dist/routes/dm.js.map +1 -1
  141. package/dist/routes/groupDm.js +3 -3
  142. package/dist/routes/groupDm.js.map +1 -1
  143. package/dist/routes/inboundWebhook.js +8 -0
  144. package/dist/routes/inboundWebhook.js.map +1 -1
  145. package/dist/routes/message.js +3 -3
  146. package/dist/routes/message.js.map +1 -1
  147. package/dist/routes/node.d.ts.map +1 -1
  148. package/dist/routes/node.js +2 -1
  149. package/dist/routes/node.js.map +1 -1
  150. package/dist/routes/thread.js +3 -3
  151. package/dist/routes/thread.js.map +1 -1
  152. package/dist/routes/workspace.js +10 -2
  153. package/dist/routes/workspace.js.map +1 -1
  154. package/package.json +3 -3
  155. package/dist/engine/usage.d.ts +0 -35
  156. package/dist/engine/usage.d.ts.map +0 -1
  157. package/dist/engine/usage.js +0 -59
  158. package/dist/engine/usage.js.map +0 -1
  159. package/dist/lib/planLimitError.d.ts +0 -26
  160. package/dist/lib/planLimitError.d.ts.map +0 -1
  161. package/dist/lib/planLimitError.js +0 -16
  162. package/dist/lib/planLimitError.js.map +0 -1
  163. package/dist/middleware/planLimits.d.ts +0 -36
  164. package/dist/middleware/planLimits.d.ts.map +0 -1
  165. package/dist/middleware/planLimits.js +0 -190
  166. package/dist/middleware/planLimits.js.map +0 -1
  167. package/dist/middleware/usageTracker.d.ts +0 -3
  168. package/dist/middleware/usageTracker.d.ts.map +0 -1
  169. package/dist/middleware/usageTracker.js +0 -11
  170. package/dist/middleware/usageTracker.js.map +0 -1
  171. package/dist/ports/entitlements.d.ts +0 -65
  172. package/dist/ports/entitlements.d.ts.map +0 -1
  173. package/dist/ports/entitlements.js +0 -2
  174. package/dist/ports/entitlements.js.map +0 -1
  175. package/dist/providers/static-entitlements.d.ts +0 -25
  176. package/dist/providers/static-entitlements.d.ts.map +0 -1
  177. package/dist/providers/static-entitlements.js +0 -55
  178. package/dist/providers/static-entitlements.js.map +0 -1
@@ -7,6 +7,8 @@ import { codedError } from '../lib/httpError.js';
7
7
  import { D1WriteRetryExhaustedError, retryD1Write } from '../lib/d1Retry.js';
8
8
  import { runAtomicWrites } from '../ports/database.js';
9
9
  import { resolveEffectiveMessageRetention } from './retention.js';
10
+ import { reportEngineProgress, withEngineOperation } from '../lib/engineDiagnostics.js';
11
+ import { drainWorkspaceRows, exceedsAtomicDeleteSize, WORKSPACE_DRAIN_MAX_DURATION_MS, } from './workspaceDrain.js';
10
12
  export const DEFAULT_WORKSPACE_REAP_LIMIT = 25;
11
13
  export const DEFAULT_FILE_CLEANUP_LIMIT = 90;
12
14
  const MAX_FILE_CLEANUP_LIMIT = 90;
@@ -402,7 +404,6 @@ export async function getWorkspace(db, workspaceId, deploymentMessageTtlDays) {
402
404
  return {
403
405
  id: workspace.id,
404
406
  name: workspace.name,
405
- plan: workspace.plan,
406
407
  system_prompt: workspace.systemPrompt,
407
408
  created_at: workspace.createdAt.toISOString(),
408
409
  metadata: workspace.metadata,
@@ -457,12 +458,20 @@ export async function updateWorkspace(db, workspaceId, updates, deploymentMessag
457
458
  return null;
458
459
  return getWorkspace(db, updated.id, deploymentMessageTtlDays);
459
460
  }
460
- async function deleteWorkspaceBatch(db, storage, workspaceIds) {
461
- if (workspaceIds.length === 0)
462
- return [];
461
+ function requireDeletableStorage(storage) {
463
462
  if (typeof storage.deleteObjects !== 'function') {
464
463
  throw codedError('The configured file storage cannot delete workspace objects', 'file_storage_delete_unsupported', 503);
465
464
  }
465
+ }
466
+ async function deleteWorkspaceBatch(db, storage, workspaceIds) {
467
+ if (workspaceIds.length === 0)
468
+ return [];
469
+ return withEngineOperation('workspace.delete', workspaceIds.length === 1 ? workspaceIds[0] : undefined, () => deleteWorkspaceBatchUnlabeled(db, storage, workspaceIds));
470
+ }
471
+ async function deleteWorkspaceBatchUnlabeled(db, storage, workspaceIds) {
472
+ if (workspaceIds.length === 0)
473
+ return [];
474
+ requireDeletableStorage(storage);
466
475
  // Deleting the workspace cascades its file rows. Migration 0037's file
467
476
  // trigger writes each storage key to the durable cleanup outbox in this same
468
477
  // transaction, so database rollback can never strand retained rows whose
@@ -636,8 +645,65 @@ export async function drainFileCleanup(db, storage, options = {}) {
636
645
  .limit(limit);
637
646
  return (await deleteCleanupRows(db, storage, rows, now)).settled;
638
647
  }
639
- export async function deleteWorkspace(db, storage, workspaceId) {
640
- await deleteWorkspaceBatch(db, storage, [workspaceId]);
648
+ /**
649
+ * Delete a workspace.
650
+ *
651
+ * A workspace small enough to delete in one transaction keeps the atomic
652
+ * contract: everything is removed (or nothing, on failure) before this
653
+ * returns. A larger one would hold the shared database for the whole cascade,
654
+ * so it is tombstoned instead: the existing expiry deadline is pulled forward
655
+ * to now, which every credential path already rejects (`workspace_expired`),
656
+ * and its data is removed by bounded drains (`reapWorkspace`, the reaper).
657
+ * Returns `deferred: true` when data removal continues in the background.
658
+ */
659
+ export async function deleteWorkspace(db, storage, workspaceId, options = {}) {
660
+ requireDeletableStorage(storage);
661
+ if (!(await exceedsAtomicDeleteSize(db, workspaceId))) {
662
+ await deleteWorkspaceBatch(db, storage, [workspaceId]);
663
+ return { deferred: false };
664
+ }
665
+ const now = options.now ?? new Date();
666
+ await retryD1Write(() => runAtomicWrites(db, (writeDb) => [
667
+ // Pulling a deadline forward never pushes a nearer one back.
668
+ writeDb
669
+ .update(workspaces)
670
+ .set({ expiresAt: now })
671
+ .where(and(eq(workspaces.id, workspaceId), or(isNull(workspaces.expiresAt), gt(workspaces.expiresAt, now)))),
672
+ // As the atomic delete does: a keyed create replay must not hand back the
673
+ // key of a workspace that no longer authenticates.
674
+ writeDb
675
+ .update(workspaceCreateIdempotency)
676
+ .set({ status: 'terminalized', terminalizedAt: now })
677
+ .where(eq(workspaceCreateIdempotency.workspaceId, workspaceId)),
678
+ ], { requireAtomic: true }));
679
+ reportEngineProgress({ operation: 'workspace.delete', workspaceId, phase: 'started' });
680
+ return { deferred: true };
681
+ }
682
+ /**
683
+ * Drain one workspace within a time budget (only when it is too large to
684
+ * delete atomically), then delete it once its bulk rows are gone. Returns true when the workspace row was deleted. Safe to call
685
+ * repeatedly and concurrently with the reaper: every step is idempotent.
686
+ */
687
+ export async function reapWorkspace(db, storage, workspaceId, options = {}) {
688
+ return reapClassifiedWorkspace(db, storage, workspaceId, undefined, options);
689
+ }
690
+ /** `reapWorkspace` for a caller that already probed the size (`large`), or not (`undefined`). */
691
+ async function reapClassifiedWorkspace(db, storage, workspaceId, large, options = {}) {
692
+ return withEngineOperation('workspace.delete', workspaceId, async () => {
693
+ // Before any row changes, as the atomic delete has always done.
694
+ requireDeletableStorage(storage);
695
+ // A small workspace keeps the atomic delete; only a large one is drained.
696
+ if (large ?? await exceedsAtomicDeleteSize(db, workspaceId)) {
697
+ const drained = await drainWorkspaceRows(db, workspaceId, options);
698
+ if (!drained.complete)
699
+ return false;
700
+ }
701
+ const deleted = await deleteWorkspaceBatch(db, storage, [workspaceId]);
702
+ if (deleted.length > 0) {
703
+ reportEngineProgress({ operation: 'workspace.delete', workspaceId, phase: 'completed', remaining: 0 });
704
+ }
705
+ return deleted.length > 0;
706
+ });
641
707
  }
642
708
  /**
643
709
  * Delete a bounded batch of workspaces whose callers explicitly opted into an
@@ -662,7 +728,41 @@ export async function reapExpiredWorkspaces(db, storage, options = {}) {
662
728
  .limit(limit);
663
729
  if (expired.length === 0)
664
730
  return [];
665
- const ids = expired.map((workspace) => workspace.id);
666
- return deleteWorkspaceBatch(db, storage, ids);
731
+ // One wall-clock budget across the whole batch. Small workspaces go first
732
+ // (one atomic delete each); the rest of the budget is split evenly across
733
+ // the large ones. A huge tenant therefore cannot take more than its share of
734
+ // the budget (at the drain's duty cycle) of database time, and every drain
735
+ // call it is given deletes at least one page, however short its slice.
736
+ const clock = options.clock ?? Date.now;
737
+ const deadline = clock() + (options.maxDurationMs ?? WORKSPACE_DRAIN_MAX_DURATION_MS);
738
+ // Classifying (and atomically deleting small ones) may use at most half the
739
+ // budget, so the large workspaces found always get the other half: probes
740
+ // alone can never consume every call while nothing is deleted.
741
+ const classifyUntil = clock() + (deadline - clock()) / 2;
742
+ const reaped = [];
743
+ const large = [];
744
+ for (const { id } of expired) {
745
+ if (large.length > 0 && clock() >= classifyUntil)
746
+ break;
747
+ if (clock() >= deadline)
748
+ return reaped;
749
+ if (await exceedsAtomicDeleteSize(db, id))
750
+ large.push(id);
751
+ else if (await reapClassifiedWorkspace(db, storage, id, false))
752
+ reaped.push(id);
753
+ }
754
+ for (const [index, id] of large.entries()) {
755
+ // One slow probe can spend the whole budget. The first large workspace
756
+ // still gets its drain call, which deletes at least one page however
757
+ // short its slice; otherwise every tick would re-probe and never drain.
758
+ const remaining = deadline - clock();
759
+ if (remaining <= 0 && index > 0)
760
+ break;
761
+ const slice = clock() + Math.max(0, remaining) / (large.length - index);
762
+ const drain = { dutyCycle: options.dutyCycle, sleep: options.sleep, now: clock, deadline: slice };
763
+ if (await reapClassifiedWorkspace(db, storage, id, true, drain))
764
+ reaped.push(id);
765
+ }
766
+ return reaped;
667
767
  }
668
768
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/engine/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/engine/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,GAEhC,MAAM,qBAAqB,CAAC;AAyD7B,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAEvD,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAC/D,GAAG,EAAE,iBAAiB,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA8B;IACvD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC/F,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,4BAA4B,CAAC,KAK5C;IACC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QAC/C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;YAC/B,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9F,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS;gBAC/C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;SACzD,CAAC;IAEN,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/F,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,WAAmB,EACnB,cAAsB,EACtB,aAAqB;IAErB,MAAM,QAAQ,GAAG,iCAAiC,cAAc,IAAI,aAAa,EAAE,CAAC;IACpF,OAAO,WAAW,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,eAAuB,EACvB,cAAsB,EACtB,aAAqB;IAErB,MAAM,QAAQ,GAAG,iCAAiC,cAAc,IAAI,aAAa,EAAE,CAAC;IACpF,OAAO,WAAW,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,IAAI,GAAG,uCAAuC;IAC1F,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAAyC,EACzC,MAAe;IAEf,OAAO;QACL,YAAY,EAAE,SAAS,CAAC,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;QAC7C,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAAiC,EACjC,QAKC;IAED,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC;IACjD,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,OAAO,CACZ,gBAAgB;QAChB,gBAAgB,CAAC,EAAE,KAAK,QAAQ,CAAC,WAAW;QAC5C,gBAAgB,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QACvC,gBAAgB,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QACnD,cAAc;QACd,cAAc,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS;QACxC,cAAc,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QACnD,cAAc,CAAC,IAAI,KAAK,SAAS,CAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,EAAM,EACN,QAKC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrD,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3E,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,MAAM,GAAyB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAClE,OAAO,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;YACpC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAEhC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACtC,IACE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC/B,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,EAC9F,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM;QACR,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM;QAEnD,MAAM,SAAS,GAAG,OAAiE,CAAC;QACpF,MAAM,IAAI,GAAG,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IACE,IAAI,KAAK,0BAA0B;YACnC,IAAI,KAAK,8BAA8B;YACvC,CACE,IAAI,KAAK,mBAAmB;gBAC5B,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAC/F;YACD,CACE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC/B,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAC/F,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,IAAY,EACZ,OAAgC;IAEhC,MAAM,uBAAuB,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC;IACnG,MAAM,mBAAmB,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC;IACzF,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC;IAC3F,MAAM,oBAAoB,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACrG,MAAM,sBAAsB,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC9G,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC;IAC/E,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvG,IAAI,uBAAuB,IAAI,sBAAsB,IAAI,uBAAuB,KAAK,sBAAsB,EAAE,CAAC;QAC5G,MAAM,UAAU,CAAC,qDAAqD,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,eAAe,GAAG,uBAAuB,IAAI,sBAAsB,CAAC;IAC1E,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/G,MAAM,cAAc,GAAG,aAAa,EAAE,cAAc,CAAC;IACrD,MAAM,aAAa,GAAG,aAAa,EAAE,aAAa,CAAC;IACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,mBAAmB,IAAI,uBAAuB,CAAC,CAAC,CAAC;IACrG,MAAM,oBAAoB,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,UAAU,CACd,+DAA+D,EAC/D,8CAA8C,EAC9C,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,uEAAuE;IACvE,4EAA4E;IAC5E,qCAAqC;IACrC,IAAI,oBAAoB,IAAI,cAAe,CAAC,MAAM,GAAG,oCAAoC,EAAE,CAAC;QAC1F,MAAM,UAAU,CACd,8CAA8C,oCAAoC,wIAAwI,EAC1N,2CAA2C,EAC3C,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,UAAU,CACd,6EAA6E,EAC7E,0CAA0C,EAC1C,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,oEAAoE;IACpE,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,oBAAoB,IAAI,eAAe,IAAI,sBAAsB,EAAE,CAAC;QACtE,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,MAAM,iBAAiB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;YAC/F,MAAM,UAAU,CACd,4FAA4F,EAC5F,2CAA2C,EAC3C,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,MAAM,UAAU,CACd,6EAA6E,EAC7E,6CAA6C,EAC7C,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,MAAM,cAAc,GAAG,oBAAoB,IAAI,cAAc;QAC3D,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,cAAc,EAAE,CAAC;QACjD,CAAC,CAAC,eAAe,CAAC;IACpB,MAAM,mBAAmB,GAAG,cAAc,IAAI,aAAa;QACzD,CAAC,CAAC,CAAC,mBAAmB;YACpB,CAAC,CAAC,MAAM,+BAA+B,CAAC,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC;YAC3F,CAAC,CAAC,MAAM,8BAA8B,CAAC,eAAgB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1F,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,cAAc,IAAI,kBAAkB,IAAI,aAAa,EAAE,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;aACvB,MAAM,EAAE;aACR,IAAI,CAAC,0BAA0B,CAAC;aAChC,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,0BAA0B,CAAC,cAAc,EAAE,cAAc,CAAC,EAC7D,EAAE,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CACtE,CAAC,CAAC;QACL,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;gBAC5C,MAAM,mBAAmB,CAAC,6DAA6D,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,mBAAmB,CACvB,uFAAuF,EACvF,2CAA2C,CAC5C,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,UAAU,CAAC,mBAAoB,CAAC,EAAE,CAAC;gBAChF,MAAM,mBAAmB,CACvB,6EAA6E,EAC7E,uCAAuC,CACxC,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YACxE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,IAAI,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE;aACxB,MAAM,EAAE;aACR,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EACzB,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,EAC1C,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CACvE,CAAC,CAAC;QACL,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YACxE,OAAO;gBACL,SAAS;gBACT,OAAO,EAAE,KAAK;gBACd,GAAG,SAAS;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,mBAAmB,IAAI,WAAW,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAC9D,IAAI,iBAA6D,CAAC;IAClE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,WAAiC,CAAC;IACtC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC;gBACH,OAAO,MAAM,eAAe,CAC1B,EAAE,EACF,CAAC,OAAO,EAAE,EAAE,CAAC;oBACX,OAAO;yBACJ,MAAM,CAAC,UAAU,CAAC;yBAClB,MAAM,CAAC;wBACN,EAAE,EAAE,WAAW;wBACf,IAAI;wBACJ,UAAU;wBACV,SAAS;wBACT,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;wBAC/C,UAAU,EAAE,aAAa,EAAE,UAAU;wBACrC,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,IAAI,SAAS;wBACpE,oBAAoB,EAAE,aAAa,EAAE,oBAAoB,IAAI,cAAc;wBAC3E,oBAAoB,EAAE,aAAa,EAAE,oBAAoB,IAAI,IAAI;wBACjE,YAAY,EAAE,aAAa,EAAE,YAAY,IAAI,IAAI;qBAClD,CAAC;yBACD,SAAS,EAAE;oBACd,OAAO;yBACJ,MAAM,CAAC,QAAQ,CAAC;yBAChB,MAAM,CAAC;wBACN,EAAE,EAAE,SAAS;wBACb,WAAW;wBACX,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,oBAAoB;qBAC5B,CAAC;yBACD,SAAS,EAAE;oBACd,GAAG,CAAC,cAAc,IAAI,kBAAkB,IAAI,aAAa;wBACvD,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC;gCACnD,cAAc;gCACd,kBAAkB;gCAClB,aAAa;gCACb,WAAW;6BACZ,CAAC,CAAC,SAAS,EAAE,CAAC;wBACf,CAAC,CAAC,EAAE,CAAC;iBACR,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACA,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,cAAc,IAAI,kBAAkB,IAAI,aAAa,EAAE,CAAC;oBAC5F,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,GAAG,CAC5E,EAAE,CAAC,0BAA0B,CAAC,cAAc,EAAE,cAAc,CAAC,EAC7D,EAAE,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CACtE,CAAC,CAAC;oBACH,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;4BAC5C,MAAM,mBAAmB,CAAC,6DAA6D,CAAC,CAAC;wBAC3F,CAAC;wBACD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAChC,MAAM,mBAAmB,CACvB,uFAAuF,EACvF,2CAA2C,CAC5C,CAAC;wBACJ,CAAC;wBACD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;wBACpG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;4BACpD,MAAM,mBAAmB,CACvB,6EAA6E,EAC7E,uCAAuC,CACxC,CAAC;wBACJ,CAAC;wBACD,iBAAiB,GAAG,QAAQ,CAAC;wBAC7B,iEAAiE;wBACjE,mEAAmE;wBACnE,8DAA8D;wBAC9D,4DAA4D;wBAC5D,wDAAwD;wBACxD,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBACjE,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;4BACvC,MAAM,KAAK,GAAG,UAAU,CACtB,2CAA2C,EAC3C,+BAA+B,EAC/B,GAAG,CACJ,CAAC;4BACF,KAAK,CAAC,WAAW,GAAG;gCAClB,SAAS,EAAE,kBAAkB;gCAC7B,aAAa,EAAE,sBAAsB;6BACtC,CAAC;4BACF,MAAM,KAAK,CAAC;wBACd,CAAC;wBACD,qBAAqB,GAAG,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC;wBACrD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAyB,CAAC;oBAC7H,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAEjD,mEAAmE;gBACnE,qEAAqE;gBACrE,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACjE,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO;oBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;gBACzD,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBACvC,MAAM,KAAK,GAAG,UAAU,CACtB,2CAA2C,EAC3C,+BAA+B,EAC/B,GAAG,CACJ,CAAC;oBACF,KAAK,CAAC,WAAW,GAAG;wBAClB,SAAS,EAAE,kBAAkB;wBAC7B,aAAa,EAAE,sBAAsB;qBACtC,CAAC;oBACF,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,UAAU,CAAC,0CAA0C,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,0BAA0B,CAAC;YAAE,MAAM,KAAK,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACjC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,UAAU,CACtB,2CAA2C,EAC3C,+BAA+B,EAC/B,GAAG,CACJ,CAAC;YACF,KAAK,CAAC,WAAW,GAAG;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,kBAAkB;gBAC7B,aAAa,EAAE,KAAK,CAAC,YAAY;aAClC,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;IACpC,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,SAAS,EAAE,CAAC;IACrE,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzE,MAAM,UAAU,CAAC,0CAA0C,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO;QACL,SAAS;QACT,OAAO,EAAE,IAAI;QACb,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAM,EAAE,IAAY;IAC3D,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE;SACzB,MAAM,CAAC;QACN,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC;SACD,IAAI,CAAC,UAAU,CAAC;SAChB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO;QACL,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAM,EACN,WAAmB;IAEnB,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE;SACzB,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;SAC3C,IAAI,CAAC,UAAU,CAAC;SAChB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IACzC,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAM,EACN,WAAmB,EACnB,wBAAwC;IAExC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,yBAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,yBAAyB,GAAG,MAAM,gCAAgC,CAChE,EAAE,EACF,WAAW,EACX,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB,GAAG;YAC1B,MAAM,EAAE,SAAkB;YAC1B,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,SAAkB;YAC1B,MAAM,EAAE,sBAA+B;SACxC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,aAAa,EAAE,SAAS,CAAC,YAAY;QACrC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;QAC7C,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,mBAAmB,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE;QAC5D,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI;QACtD,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,IAAI;QACxC,oBAAoB,EAAE,SAAS,CAAC,mBAAmB;QACnD,qBAAqB,EAAE,SAAS,CAAC,oBAAoB;QACrD,qBAAqB,EAAE,SAAS,CAAC,oBAAoB;QACrD,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,IAAI;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,WAAmB,EACnB,OAA6F,EAC7F,wBAAwC;IAExC,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9D,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QACrC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAEjD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,0EAA0E;QAC1E,8DAA8D;QAC9D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAClC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;iBAC1C,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC1D,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,EAC9B,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CACpG,CAAC;iBACD,SAAS,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,UAAU,CAAC,2DAA2D,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;IACpH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;SACvB,MAAM,CAAC,UAAU,CAAC;SAClB,GAAG,CAAC,SAAS,CAAC;SACd,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;SACrC,SAAS,EAAE,CAAC;IAEf,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAoB;IACnD,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,UAAU,CACd,6DAA6D,EAC7D,iCAAiC,EACjC,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,EAAM,EACN,OAAoB,EACpB,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,mBAAmB,CACxB,kBAAkB,EAClB,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACvD,GAAG,EAAE,CAAC,6BAA6B,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,EAAM,EACN,OAAoB,EACpB,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,uEAAuE;IACvE,6EAA6E;IAC7E,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,eAAe,CACtC,EAAE,EACF,CAAC,OAAO,EAAE,EAAE,CAAC;YACX,OAAO;iBACJ,MAAM,CAAC,eAAe,CAAC;iBACvB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAC5D,OAAO;iBACJ,MAAM,CAAC,0BAA0B,CAAC;iBAClC,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;iBAC3D,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACvE,OAAO;iBACJ,MAAM,CAAC,UAAU,CAAC;iBAClB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;SAC/C,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,0BAA0B,CAAC;YAAE,MAAM,KAAK,CAAC;QAEhE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,YAAY,GAAW,KAAK,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,EAAE;iBACvB,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;iBAC7B,IAAI,CAAC,UAAU,CAAC;iBAChB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC/C,SAAS,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,sBAAsB,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,UAAU,CACtB,2CAA2C,EAC3C,+BAA+B,EAC/B,GAAG,CACJ,CAAC;YACF,KAAK,CAAC,WAAW,GAAG;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,kBAAkB;gBAC7B,aAAa,EAAE,YAAY;aAC5B,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC;IAEhC,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,CAAC;QACH,MAAM,4BAA4B,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;IACzE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,EAAM,EACN,WAAqB,EACrB,GAAY,EACZ,GAAS;IAET,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE;aACL,MAAM,CAAC,gBAAgB,CAAC;aACxB,GAAG,CAAC;YACH,QAAQ,EAAE,GAAG,CAAA,GAAG,gBAAgB,CAAC,QAAQ,MAAM;YAC/C,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YACnD,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,qBAAqB,CAAC;SAC9D,CAAC;aACD,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,0EAA0E;QAC1E,sEAAsE;QACtE,kEAAkE;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,EAAM,EACN,OAAoB,EACpB,IAAsD,EACtD,GAAS;IAET,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,UAAU,CACtB,6DAA6D,EAC7D,iCAAiC,EACjC,GAAG,CACJ,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,MAAM,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC;SAClE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,MAAM,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI;SACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;SAC3D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,IAAI;SACtB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;SAC1D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE;aACL,MAAM,CAAC,gBAAgB,CAAC;aACxB,GAAG,CAAC;YACH,QAAQ,EAAE,GAAG,CAAA,GAAG,gBAAgB,CAAC,QAAQ,MAAM;YAC/C,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,gBAAgB,CAAC,WAAW;SAC3C,CAAC;aACD,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,EAAM,EACN,OAAoB,EACpB,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACtC,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACxD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,CAAC;YACN,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW,EAAE,gBAAgB,CAAC,WAAW;SAC1C,CAAC;aACD,IAAI,CAAC,gBAAgB,CAAC;aACtB,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,GAAG,gBAAgB,CAAC,EACvB,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,CACxC,CAAC;aACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;aAC7E,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;IACjC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAM,EACN,OAAoB,EACpB,UAA0C,EAAE;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACtC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC3E,CAAC,CAAC,0BAA0B,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,CAAC;QACN,UAAU,EAAE,gBAAgB,CAAC,UAAU;QACvC,WAAW,EAAE,gBAAgB,CAAC,WAAW;KAC1C,CAAC;SACD,IAAI,CAAC,gBAAgB,CAAC;SACtB,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;SAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAC7E,KAAK,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACnE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,OAAoB,EACpB,WAAmB,EACnB,UAA0B,EAAE;IAE5B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM,uBAAuB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACtC,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,6DAA6D;QAC7D,OAAO;aACJ,MAAM,CAAC,UAAU,CAAC;aAClB,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;aACvB,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,EAC9B,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAChE,CAAC;QACJ,0EAA0E;QAC1E,mDAAmD;QACnD,OAAO;aACJ,MAAM,CAAC,0BAA0B,CAAC;aAClC,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;aACpD,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;KAClE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7B,oBAAoB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAM,EACN,OAAoB,EACpB,WAAmB,EACnB,UAAiC,EAAE;IAEnC,OAAO,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/E,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,uBAAuB,CACpC,EAAM,EACN,OAAoB,EACpB,WAAmB,EACnB,KAA0B,EAC1B,UAAiC,EAAE;IAEnC,OAAO,mBAAmB,CAAC,kBAAkB,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;QACrE,gEAAgE;QAChE,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,0EAA0E;QAC1E,IAAI,KAAK,IAAI,MAAM,uBAAuB,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;QACtC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,oBAAoB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAM,EACN,OAAoB,EACpB,UAGI,EAAE;IAEN,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACtC,4EAA4E;IAC5E,4EAA4E;IAC5E,yDAAyD;IACzD,MAAM,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,4BAA4B,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,4BAA4B,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;SAC7B,IAAI,CAAC,UAAU,CAAC;SAChB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;SACrC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACtD,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,0EAA0E;IAC1E,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,+BAA+B,CAAC,CAAC;IACtF,4EAA4E;IAC5E,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,aAAa,GAAG,KAAK,EAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,aAAa;YAAE,MAAM;QACxD,IAAI,KAAK,EAAE,IAAI,QAAQ;YAAE,OAAO,MAAM,CAAC;QACvC,IAAI,MAAM,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACrD,IAAI,MAAM,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;QACrC,IAAI,SAAS,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;QACvC,MAAM,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClG,IAAI,MAAM,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -12,7 +12,7 @@ import type { EngineDb } from '../ports/database.js';
12
12
  * `rw_7ccfea89`: two 4,889-recipient sends -> 9,778 active rows vs a 5,000 cap).
13
13
  *
14
14
  * This module owns the engine-side enforcement boundary. The host resolves the
15
- * *effective configured* cap (and any optional reserve) from server-owned plan
15
+ * *effective configured* cap (and any optional reserve) from its own server-owned
16
16
  * state and passes it here through a server-only field. It is never derived
17
17
  * from a client header, and an absent policy applies **no** guard rather than
18
18
  * silently becoming unlimited by accident-of-plumbing: callers that must be
@@ -36,7 +36,6 @@ export declare function resolveWorkspaceDeliveryPolicyFor(config: {
36
36
  workspaceDelivery?: WorkspaceDeliveryPolicyConfig;
37
37
  } | undefined, workspace: {
38
38
  id: string;
39
- plan?: string | null;
40
39
  }): Promise<WorkspaceDeliveryPolicy | undefined>;
41
40
  /**
42
41
  * Resolve the workspace growth policy for a workspace, or `undefined` when the
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceDeliveryPolicy.d.ts","sourceRoot":"","sources":["../../src/engine/workspaceDeliveryPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC5G,YAAY,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE5G,OAAO,EAA2B,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,mFAAmF;AACnF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;AAExD,6EAA6E;AAC7E,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,IAAI,uCAAuC;IACpD,QAAQ,CAAC,SAAS,QAAQ;IAC1B,QAAQ,CAAC,MAAM,OAAO;gBACV,OAAO,EAAE,MAAM;CAI5B;AAOD;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;CAAE,GAAG,SAAS,EACzE,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9C,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAO9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;CAAE,GAAG,SAAS,EACzE,WAAW,EAAE,MAAM,GAClB,uBAAuB,GAAG,SAAS,CAWrC;AAYD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9F;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAOxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,UAAU,EAC7B,SAAS,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,CAAC,CAQb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,CAAC,CAEb;AAED,kFAAkF;AAClF,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;CAAE,GAAG,SAAS,EACzE,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAK9C"}
1
+ {"version":3,"file":"workspaceDeliveryPolicy.d.ts","sourceRoot":"","sources":["../../src/engine/workspaceDeliveryPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC5G,YAAY,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE5G,OAAO,EAA2B,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,mFAAmF;AACnF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;AAExD,6EAA6E;AAC7E,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,IAAI,uCAAuC;IACpD,QAAQ,CAAC,SAAS,QAAQ;IAC1B,QAAQ,CAAC,MAAM,OAAO;gBACV,OAAO,EAAE,MAAM;CAI5B;AAOD;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;CAAE,GAAG,SAAS,EACzE,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAI9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;CAAE,GAAG,SAAS,EACzE,WAAW,EAAE,MAAM,GAClB,uBAAuB,GAAG,SAAS,CAWrC;AAYD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9F;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAOxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,UAAU,EAC7B,SAAS,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,CAAC,CAQb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,CAAC,CAEb;AAED,kFAAkF;AAClF,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;CAAE,GAAG,SAAS,EACzE,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAK9C"}
@@ -21,10 +21,7 @@ const dynamicWorkspaceDeliveryPolicySchema = z.object({
21
21
  * when neither is configured (self-host: no workspace guard).
22
22
  */
23
23
  export async function resolveWorkspaceDeliveryPolicyFor(config, workspace) {
24
- const dynamic = await config?.workspaceDelivery?.resolve?.({
25
- id: workspace.id,
26
- plan: workspace.plan ?? 'free',
27
- });
24
+ const dynamic = await config?.workspaceDelivery?.resolve?.({ id: workspace.id });
28
25
  if (dynamic !== undefined)
29
26
  return dynamicWorkspaceDeliveryPolicySchema.parse(dynamic);
30
27
  return resolveWorkspaceDeliveryPolicy(config, workspace.id);
@@ -121,7 +118,7 @@ export function workspaceGrowthGuardSql(workspaceId, limit, newCandidateCount) {
121
118
  }
122
119
  /** Resolve after custom authentication has established the workspace identity. */
123
120
  export async function resolveWorkspaceDeliveryPolicyById(db, config, workspaceId) {
124
- const [workspace] = await db.select({ id: workspaces.id, plan: workspaces.plan })
121
+ const [workspace] = await db.select({ id: workspaces.id })
125
122
  .from(workspaces).where(eq(workspaces.id, workspaceId));
126
123
  if (!workspace)
127
124
  throw new Error('Workspace delivery policy workspace not found');
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceDeliveryPolicy.js","sourceRoot":"","sources":["../../src/engine/workspaceDeliveryPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceDeliveryPolicy.js","sourceRoot":"","sources":["../../src/engine/workspaceDeliveryPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Db } from '../db/index.js';
2
+ /** Tables the drain pages through, children included (for coverage checks). */
3
+ export declare function drainedWorkspaceTables(): string[];
4
+ /**
5
+ * Bulk rows above which a workspace is too large to delete in one atomic
6
+ * transaction. Below it, deletion keeps its atomic contract (all or nothing,
7
+ * storage failures reported synchronously); above it, the workspace is
8
+ * tombstoned and drained in bounded steps.
9
+ */
10
+ export declare const WORKSPACE_ATOMIC_DELETE_MAX_ROWS = 2000;
11
+ /**
12
+ * True when the workspace holds more than `maxRows` bulk rows. Each probe is an
13
+ * index range capped at the remaining allowance, so the check itself is
14
+ * bounded no matter how large the tenant is.
15
+ */
16
+ export declare function exceedsAtomicDeleteSize(db: Db, workspaceId: string, maxRows?: number): Promise<boolean>;
17
+ /** Default wall-clock budget for one drain call. */
18
+ export declare const WORKSPACE_DRAIN_MAX_DURATION_MS = 2000;
19
+ /**
20
+ * Fraction of wall time spent in drain statements; the rest is idle. At 0.5
21
+ * every statement is followed by a pause as long as it took.
22
+ */
23
+ export declare const WORKSPACE_DRAIN_DUTY_CYCLE = 0.5;
24
+ export interface WorkspaceDrainOptions {
25
+ /** Absolute wall-clock deadline (ms since epoch); overrides maxDurationMs. */
26
+ deadline?: number;
27
+ maxDurationMs?: number;
28
+ dutyCycle?: number;
29
+ now?: () => number;
30
+ sleep?: (ms: number) => Promise<void>;
31
+ }
32
+ export interface WorkspaceDrainResult {
33
+ /** True when every bulk table is empty for this workspace. */
34
+ complete: boolean;
35
+ rows: number;
36
+ }
37
+ export declare function drainWorkspaceRows(db: Db, workspaceId: string, options?: WorkspaceDrainOptions): Promise<WorkspaceDrainResult>;
38
+ //# sourceMappingURL=workspaceDrain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceDrain.d.ts","sourceRoot":"","sources":["../../src/engine/workspaceDrain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAoGzC,+EAA+E;AAC/E,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,OAAQ,CAAC;AAEtD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,OAAO,SAAmC,GACzC,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED,oDAAoD;AACpD,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAyE/B"}
@@ -0,0 +1,202 @@
1
+ import { sql } from 'drizzle-orm';
2
+ import { reportEngineProgress } from '../lib/engineDiagnostics.js';
3
+ import { D1_SAFE_IN_QUERY_CHUNK_SIZE } from '../lib/queryChunks.js';
4
+ const CHILD_CHUNK = 500;
5
+ const DRAIN_STEPS = [
6
+ { table: 'deliveries', chunk: 500 },
7
+ { table: 'message_logs', chunk: 500 },
8
+ { table: 'workspace_events', chunk: 500 },
9
+ { table: 'session_events', chunk: 500 },
10
+ { table: 'action_invocations', chunk: 500 },
11
+ { table: 'usage_records', chunk: 500 },
12
+ // Append-only history that outlives message retention and agent deletion.
13
+ { table: 'message_sessions', chunk: 500 },
14
+ { table: 'agent_identity_audit', chunk: 500 },
15
+ { table: 'direct_dm_idempotency', chunk: 500 },
16
+ { table: 'routing_failures', chunk: 500 },
17
+ { table: 'a2a_inbound', chunk: 500 },
18
+ { table: 'a2a_egress', chunk: D1_SAFE_IN_QUERY_CHUNK_SIZE, children: [{ table: 'a2a_egress_context', key: 'id' }] },
19
+ // One webhook delivery per (event, matching subscription).
20
+ { table: 'pending_events', chunk: D1_SAFE_IN_QUERY_CHUNK_SIZE, children: [{ table: 'webhook_deliveries', key: 'event_id' }] },
21
+ // Per-message fan-out (one receipt per reader). Deleting a message fires
22
+ // the FTS delete triggers.
23
+ {
24
+ table: 'messages',
25
+ chunk: D1_SAFE_IN_QUERY_CHUNK_SIZE,
26
+ where: 'NOT EXISTS (SELECT 1 FROM messages replies WHERE replies.thread_id = messages.id)',
27
+ order: 'length(id) DESC, id DESC',
28
+ children: [
29
+ { table: 'read_receipts', key: 'message_id' },
30
+ { table: 'reactions', key: 'message_id' },
31
+ { table: 'message_attachments', key: 'message_id' },
32
+ ],
33
+ },
34
+ // Each file row enqueues its blob in the durable cleanup outbox (trigger),
35
+ // which the reaper drains.
36
+ { table: 'files', chunk: 200 },
37
+ { table: 'dm_conversations', chunk: D1_SAFE_IN_QUERY_CHUNK_SIZE, children: [{ table: 'dm_participants', key: 'conversation_id' }] },
38
+ // Cascades webhooks.
39
+ { table: 'channels', chunk: D1_SAFE_IN_QUERY_CHUNK_SIZE, children: [{ table: 'channel_members', key: 'channel_id' }] },
40
+ // Last of the bulk tables: messages, channels and files are NO ACTION
41
+ // references to agents, so an agent still referenced is left to the cascade.
42
+ {
43
+ table: 'agents',
44
+ chunk: 200,
45
+ where: [
46
+ 'NOT EXISTS (SELECT 1 FROM messages m WHERE m.agent_id = agents.id)',
47
+ 'NOT EXISTS (SELECT 1 FROM channels c WHERE c.created_by = agents.id)',
48
+ 'NOT EXISTS (SELECT 1 FROM files f WHERE f.uploaded_by = agents.id)',
49
+ 'NOT EXISTS (SELECT 1 FROM webhooks w WHERE w.created_by = agents.id)',
50
+ ].join(' AND '),
51
+ },
52
+ { table: 'nodes', chunk: 200 },
53
+ ];
54
+ /** Tables the drain pages through, children included (for coverage checks). */
55
+ export function drainedWorkspaceTables() {
56
+ return DRAIN_STEPS.flatMap(step => [step.table, ...(step.children ?? []).map(child => child.table)]);
57
+ }
58
+ // Names below are the constants above, never input.
59
+ /**
60
+ * One page of `step` in this workspace, as `column` values. The child deletes
61
+ * and the parent delete of a round embed this exact subquery (ids are not
62
+ * bound: a page would exceed D1's 100-parameter limit), so they see the same
63
+ * rows. Its LIMIT bounds the parent search.
64
+ */
65
+ function pageSql(step, workspaceId, column, limit = step.chunk) {
66
+ return sql `
67
+ SELECT ${sql.raw(column)} FROM ${sql.raw(step.table)}
68
+ WHERE workspace_id = ${workspaceId}${step.where ? sql.raw(` AND ${step.where}`) : sql ``}
69
+ ${step.order ? sql.raw(`ORDER BY ${step.order}`) : sql ``}
70
+ LIMIT ${limit}
71
+ `;
72
+ }
73
+ function childPageSql(child, parentPage, limit) {
74
+ return sql `
75
+ SELECT rowid FROM ${sql.raw(child.table)}
76
+ WHERE ${sql.raw(child.key)} IN (${parentPage})
77
+ LIMIT ${limit}
78
+ `;
79
+ }
80
+ /**
81
+ * Bulk rows above which a workspace is too large to delete in one atomic
82
+ * transaction. Below it, deletion keeps its atomic contract (all or nothing,
83
+ * storage failures reported synchronously); above it, the workspace is
84
+ * tombstoned and drained in bounded steps.
85
+ */
86
+ export const WORKSPACE_ATOMIC_DELETE_MAX_ROWS = 2_000;
87
+ /**
88
+ * True when the workspace holds more than `maxRows` bulk rows. Each probe is an
89
+ * index range capped at the remaining allowance, so the check itself is
90
+ * bounded no matter how large the tenant is.
91
+ */
92
+ export async function exceedsAtomicDeleteSize(db, workspaceId, maxRows = WORKSPACE_ATOMIC_DELETE_MAX_ROWS) {
93
+ let seen = 0;
94
+ const count = async (query) => {
95
+ const [row] = await db.all(sql `SELECT count(*) AS n FROM (${query})`);
96
+ seen += Number(row?.n ?? 0);
97
+ return seen > maxRows;
98
+ };
99
+ for (const step of DRAIN_STEPS) {
100
+ // Unguarded, unordered: the probe counts rows, it does not choose a page.
101
+ const plain = { ...step, where: undefined, order: undefined };
102
+ if (await count(pageSql(plain, workspaceId, 'rowid', maxRows - seen + 1)))
103
+ return true;
104
+ for (const child of step.children ?? []) {
105
+ // Children of at most the first maxRows + 1 parents: if there are more
106
+ // parents than that, the parent count above already decided.
107
+ const parents = pageSql(plain, workspaceId, 'id', maxRows + 1);
108
+ if (await count(childPageSql(child, parents, maxRows - seen + 1)))
109
+ return true;
110
+ }
111
+ }
112
+ return false;
113
+ }
114
+ /** Default wall-clock budget for one drain call. */
115
+ export const WORKSPACE_DRAIN_MAX_DURATION_MS = 2_000;
116
+ /**
117
+ * Fraction of wall time spent in drain statements; the rest is idle. At 0.5
118
+ * every statement is followed by a pause as long as it took.
119
+ */
120
+ export const WORKSPACE_DRAIN_DUTY_CYCLE = 0.5;
121
+ const defaultSleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
122
+ export async function drainWorkspaceRows(db, workspaceId, options = {}) {
123
+ const now = options.now ?? Date.now;
124
+ const sleep = options.sleep ?? defaultSleep;
125
+ const deadline = options.deadline ?? now() + (options.maxDurationMs ?? WORKSPACE_DRAIN_MAX_DURATION_MS);
126
+ const duty = Math.min(Math.max(options.dutyCycle ?? WORKSPACE_DRAIN_DUTY_CYCLE, 0.05), 1);
127
+ let rows = 0;
128
+ // The deadline stops a call only once it has deleted something. Every call
129
+ // re-checks the already-empty tables first; were those cheap probes allowed
130
+ // to spend a short slice (the reaper splits its budget across workspaces),
131
+ // a call could end before reaching the rows left, and every later call the
132
+ // same way. The overrun is bounded: at most one probe per step plus a page.
133
+ const spent = () => rows > 0 && now() >= deadline;
134
+ // One paced, deadline-checked statement. Returns rows deleted, or null when
135
+ // the budget is spent before it could run.
136
+ const run = async (table, rowids) => {
137
+ if (spent())
138
+ return null;
139
+ const started = now();
140
+ const deleted = await db.all(sql `DELETE FROM ${sql.raw(table)} WHERE rowid IN (${rowids}) RETURNING 1`);
141
+ const elapsed = now() - started;
142
+ rows += deleted.length;
143
+ if (deleted.length > 0) {
144
+ reportEngineProgress({
145
+ operation: 'workspace.delete', workspaceId, phase: 'batch', table, rows: deleted.length,
146
+ remaining: null, durationMs: elapsed,
147
+ });
148
+ // Every page that deleted rows is paced, a table's last one included.
149
+ const idle = elapsed * (1 / duty - 1);
150
+ if (idle > 0)
151
+ await sleep(Math.min(idle, Math.max(0, deadline - now())));
152
+ }
153
+ return deleted.length;
154
+ };
155
+ for (const step of DRAIN_STEPS) {
156
+ for (;;) {
157
+ if (spent())
158
+ return { complete: false, rows };
159
+ let deleted;
160
+ let pageSize;
161
+ if (step.children) {
162
+ const ids = (await db.all(pageSql(step, workspaceId, 'id'))).map(row => row.id);
163
+ pageSize = ids.length;
164
+ if (ids.length === 0)
165
+ break;
166
+ const page = sql.join(ids.map(id => sql `${id}`), sql `, `);
167
+ for (const child of step.children) {
168
+ for (;;) {
169
+ const removed = await run(child.table, sql `
170
+ SELECT rowid FROM ${sql.raw(child.table)} WHERE ${sql.raw(child.key)} IN (${page}) LIMIT ${CHILD_CHUNK}
171
+ `);
172
+ if (removed === null)
173
+ return { complete: false, rows };
174
+ if (removed < CHILD_CHUNK)
175
+ break;
176
+ }
177
+ }
178
+ // Exactly the parents whose children were drained, guard re-checked.
179
+ deleted = await run(step.table, sql `
180
+ SELECT rowid FROM ${sql.raw(step.table)}
181
+ WHERE id IN (${page})${step.where ? sql.raw(` AND ${step.where}`) : sql ``}
182
+ `);
183
+ }
184
+ else {
185
+ deleted = await run(step.table, pageSql(step, workspaceId, 'rowid'));
186
+ pageSize = deleted ?? 0;
187
+ }
188
+ if (deleted === null)
189
+ return { complete: false, rows };
190
+ // Unguarded: a short page means the table is empty. Guarded (messages,
191
+ // agents): a short page can still precede rows the guard held back (a
192
+ // root behind its replies), so only an empty page ends the step; rows
193
+ // the guard holds back for good are left to the final cascade.
194
+ // A page an overlapping drain already removed (deleted 0 of a non-empty
195
+ // page) is not the end: the next round reads the next page.
196
+ if (step.where ? pageSize === 0 : pageSize < step.chunk)
197
+ break;
198
+ }
199
+ }
200
+ return { complete: true, rows };
201
+ }
202
+ //# sourceMappingURL=workspaceDrain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceDrain.js","sourceRoot":"","sources":["../../src/engine/workspaceDrain.ts"],"names":[],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -6,7 +6,7 @@ import type { EngineDeps } from './ports/index.js';
6
6
  *
7
7
  * All infrastructure (database, realtime, presence, rate limiting, files,
8
8
  * key/value, outbound queue) and the open-core providers
9
- * (auth, entitlements, telemetry) are injected via {@link EngineDeps}. An
9
+ * (auth, admission, telemetry) are injected via {@link EngineDeps}. An
10
10
  * adapter supplies concrete implementations:
11
11
  * - the Node in-process adapter for self-host (Node + SQLite), or
12
12
  * - the Cloudflare Durable Object adapter for the hosted product (cloud repo).
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8CnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CA+M3D"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA+CnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAwN3D"}