@relaycast/engine 8.9.0 → 8.10.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 (121) hide show
  1. package/dist/adapters/node/index.d.ts.map +1 -1
  2. package/dist/adapters/node/index.js +6 -0
  3. package/dist/adapters/node/index.js.map +1 -1
  4. package/dist/db/migrations/0057_a2a_egress.sql +20 -0
  5. package/dist/db/migrations/0058_a2a_egress_context.sql +8 -0
  6. package/dist/db/migrations/0059_a2a_inbound_admission.sql +26 -0
  7. package/dist/db/schema.d.ts +603 -0
  8. package/dist/db/schema.d.ts.map +1 -1
  9. package/dist/db/schema.js +34 -0
  10. package/dist/db/schema.js.map +1 -1
  11. package/dist/engine/a2a.d.ts +4 -1
  12. package/dist/engine/a2a.d.ts.map +1 -1
  13. package/dist/engine/a2a.js +43 -6
  14. package/dist/engine/a2a.js.map +1 -1
  15. package/dist/engine/a2aEgress.d.ts +19 -0
  16. package/dist/engine/a2aEgress.d.ts.map +1 -0
  17. package/dist/engine/a2aEgress.js +118 -0
  18. package/dist/engine/a2aEgress.js.map +1 -0
  19. package/dist/engine/channel.d.ts.map +1 -1
  20. package/dist/engine/channel.js +56 -17
  21. package/dist/engine/channel.js.map +1 -1
  22. package/dist/engine/delivery.d.ts +2 -0
  23. package/dist/engine/delivery.d.ts.map +1 -1
  24. package/dist/engine/delivery.js +20 -4
  25. package/dist/engine/delivery.js.map +1 -1
  26. package/dist/engine/deliveryWire.d.ts.map +1 -1
  27. package/dist/engine/deliveryWire.js +1 -1
  28. package/dist/engine/deliveryWire.js.map +1 -1
  29. package/dist/engine/deliveryWrites.d.ts +9 -0
  30. package/dist/engine/deliveryWrites.d.ts.map +1 -1
  31. package/dist/engine/deliveryWrites.js +70 -19
  32. package/dist/engine/deliveryWrites.js.map +1 -1
  33. package/dist/engine/dm.d.ts +47 -8
  34. package/dist/engine/dm.d.ts.map +1 -1
  35. package/dist/engine/dm.js +239 -42
  36. package/dist/engine/dm.js.map +1 -1
  37. package/dist/engine/groupDm.d.ts +2 -0
  38. package/dist/engine/groupDm.d.ts.map +1 -1
  39. package/dist/engine/groupDm.js +2 -1
  40. package/dist/engine/groupDm.js.map +1 -1
  41. package/dist/engine/inboundWebhook.d.ts +3 -0
  42. package/dist/engine/inboundWebhook.d.ts.map +1 -1
  43. package/dist/engine/inboundWebhook.js +7 -1
  44. package/dist/engine/inboundWebhook.js.map +1 -1
  45. package/dist/engine/mentions.d.ts +3 -0
  46. package/dist/engine/mentions.d.ts.map +1 -0
  47. package/dist/engine/mentions.js +5 -0
  48. package/dist/engine/mentions.js.map +1 -0
  49. package/dist/engine/message.d.ts +2 -0
  50. package/dist/engine/message.d.ts.map +1 -1
  51. package/dist/engine/message.js +4 -7
  52. package/dist/engine/message.js.map +1 -1
  53. package/dist/engine/node.d.ts +2 -2
  54. package/dist/engine/thread.d.ts +2 -0
  55. package/dist/engine/thread.d.ts.map +1 -1
  56. package/dist/engine/thread.js +3 -1
  57. package/dist/engine/thread.js.map +1 -1
  58. package/dist/engine/workspaceDeliveryPolicy.d.ts +91 -0
  59. package/dist/engine/workspaceDeliveryPolicy.d.ts.map +1 -0
  60. package/dist/engine/workspaceDeliveryPolicy.js +130 -0
  61. package/dist/engine/workspaceDeliveryPolicy.js.map +1 -0
  62. package/dist/engine/workspaceEvents.d.ts +120 -0
  63. package/dist/engine/workspaceEvents.d.ts.map +1 -1
  64. package/dist/engine/workspaceEvents.js +8 -10
  65. package/dist/engine/workspaceEvents.js.map +1 -1
  66. package/dist/index.d.ts +3 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +2 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/lib/httpError.d.ts +1 -1
  71. package/dist/lib/httpError.d.ts.map +1 -1
  72. package/dist/lib/httpError.js +2 -0
  73. package/dist/lib/httpError.js.map +1 -1
  74. package/dist/lib/httpResponse.d.ts +6 -6
  75. package/dist/middleware/idempotency.d.ts +15 -10
  76. package/dist/middleware/idempotency.d.ts.map +1 -1
  77. package/dist/middleware/idempotency.js +9 -9
  78. package/dist/middleware/idempotency.js.map +1 -1
  79. package/dist/ports/database.d.ts +4 -20
  80. package/dist/ports/database.d.ts.map +1 -1
  81. package/dist/ports/database.js +28 -7
  82. package/dist/ports/database.js.map +1 -1
  83. package/dist/ports/index.d.ts +9 -0
  84. package/dist/ports/index.d.ts.map +1 -1
  85. package/dist/ports/workspaceDelivery.d.ts +31 -0
  86. package/dist/ports/workspaceDelivery.d.ts.map +1 -0
  87. package/dist/ports/workspaceDelivery.js +2 -0
  88. package/dist/ports/workspaceDelivery.js.map +1 -0
  89. package/dist/routes/a2a.d.ts.map +1 -1
  90. package/dist/routes/a2a.js +162 -26
  91. package/dist/routes/a2a.js.map +1 -1
  92. package/dist/routes/delivery.d.ts.map +1 -1
  93. package/dist/routes/delivery.js +15 -4
  94. package/dist/routes/delivery.js.map +1 -1
  95. package/dist/routes/deliveryRouting.d.ts +1 -1
  96. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  97. package/dist/routes/deliveryRouting.js +8 -7
  98. package/dist/routes/deliveryRouting.js.map +1 -1
  99. package/dist/routes/dm.d.ts.map +1 -1
  100. package/dist/routes/dm.js +27 -8
  101. package/dist/routes/dm.js.map +1 -1
  102. package/dist/routes/fanout.d.ts +1 -1
  103. package/dist/routes/fanout.d.ts.map +1 -1
  104. package/dist/routes/fanout.js +2 -2
  105. package/dist/routes/fanout.js.map +1 -1
  106. package/dist/routes/groupDm.d.ts.map +1 -1
  107. package/dist/routes/groupDm.js +3 -2
  108. package/dist/routes/groupDm.js.map +1 -1
  109. package/dist/routes/inboundWebhook.d.ts.map +1 -1
  110. package/dist/routes/inboundWebhook.js +8 -2
  111. package/dist/routes/inboundWebhook.js.map +1 -1
  112. package/dist/routes/message.d.ts.map +1 -1
  113. package/dist/routes/message.js +3 -1
  114. package/dist/routes/message.js.map +1 -1
  115. package/dist/routes/relayfileInbound.d.ts.map +1 -1
  116. package/dist/routes/relayfileInbound.js +9 -3
  117. package/dist/routes/relayfileInbound.js.map +1 -1
  118. package/dist/routes/thread.d.ts.map +1 -1
  119. package/dist/routes/thread.js +3 -1
  120. package/dist/routes/thread.js.map +1 -1
  121. package/package.json +5 -4
@@ -1,3 +1,4 @@
1
+ import { WorkspaceDeliveryCapacityError } from '../engine/workspaceDeliveryPolicy.js';
1
2
  function buildStatements(input, db) {
2
3
  return typeof input === 'function' ? input(db) : input;
3
4
  }
@@ -35,7 +36,7 @@ export function runAtomic(db, fn) {
35
36
  * DB-returned values (IDs are app-generated snowflakes), because under a batch
36
37
  * nothing is visible until every statement has executed.
37
38
  */
38
- export async function runAtomicWrites(db, input, options = {}) {
39
+ async function executeAtomicWrites(db, input, options = {}) {
39
40
  const handle = db;
40
41
  if (options.requireAtomic &&
41
42
  typeof handle.withTransaction !== 'function' &&
@@ -56,17 +57,37 @@ export async function runAtomicWrites(db, input, options = {}) {
56
57
  }
57
58
  return runSequentially(statements);
58
59
  }
59
- /** Normalize the capacity sentinel across SQLite adapters (D1 exposes only a wrapped message).
60
- * Keep driver-specific error decoding at this port boundary; engine callers use a stable kind.
61
- */
60
+ /** Translate a workspace guard failure after the atomic adapter rolls back. */
61
+ export async function runAtomicWrites(db, input, options = {}) {
62
+ try {
63
+ return await executeAtomicWrites(db, input, options);
64
+ }
65
+ catch (error) {
66
+ if (databaseConstraintKind(error) === 'workspace_delivery_capacity') {
67
+ throw new WorkspaceDeliveryCapacityError('Workspace delivery backlog is full; retry after it drains');
68
+ }
69
+ throw error;
70
+ }
71
+ }
62
72
  export function databaseConstraintKind(error) {
63
73
  const seen = new Set();
64
74
  let cause = error;
65
- while (cause instanceof Error && !seen.has(cause)) {
75
+ while (cause !== null && typeof cause === 'object' && !seen.has(cause)) {
66
76
  seen.add(cause);
67
- if (/NOT NULL constraint failed: deliveries\.workspace_id/i.test(cause.message))
77
+ const record = cause;
78
+ const message = typeof record.message === 'string' ? record.message : '';
79
+ // Registration guards use messages.agent_id for admission and
80
+ // a2a_inbound.workspace_id for legacy identity promotion (both non-null).
81
+ if (/NOT NULL constraint failed: (messages\.agent_id|a2a_inbound\.workspace_id)/i.test(message))
82
+ return 'a2a_registration_changed';
83
+ // Per-recipient/required-mailbox sentinel (workspace_id NULL), and the
84
+ // distinct workspace-scoped growth sentinel (status NULL). Order matters
85
+ // only for a row that trips both; either is a capacity refusal.
86
+ if (/NOT NULL constraint failed: deliveries\.workspace_id/i.test(message))
68
87
  return 'mailbox_capacity';
69
- cause = cause.cause;
88
+ if (/NOT NULL constraint failed: deliveries\.status/i.test(message))
89
+ return 'workspace_delivery_capacity';
90
+ cause = record.cause;
70
91
  }
71
92
  return undefined;
72
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"AAoGA,SAAS,eAAe,CAAC,KAAuB,EAAE,EAAY;IAC5D,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAAkC;IAC/D,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAI,EAAY,EAAE,EAAgC;IACzE,MAAM,EAAE,eAAe,EAAE,GAAG,EAA+C,CAAC;IAC5E,OAAO,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAY,EACZ,KAAuB,EACvB,UAAkC,EAAE;IAEpC,MAAM,MAAM,GAAG,EAA0E,CAAC;IAC1F,IACE,OAAO,CAAC,aAAa;QACrB,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU;QAC5C,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAClC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC,UAA6C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,IAAI,uDAAuD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAC3G,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"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"}
@@ -128,5 +128,14 @@ export interface EngineConfig {
128
128
  depthCap?: number;
129
129
  }>;
130
130
  };
131
+ /**
132
+ * Server-owned workspace delivery-growth policy. Bounds the aggregate active
133
+ * delivery backlog so a single large fanout cannot exceed the configured cap.
134
+ * Hosted adapters supply the *effective configured* cap (and an optional
135
+ * within-cap reserve); self-host leaves it unset and applies no workspace
136
+ * guard. Never derived from a client request.
137
+ */
138
+ workspaceDelivery?: import('./workspaceDelivery.js').WorkspaceDeliveryPolicyConfig;
131
139
  }
140
+ export type { WorkspaceDeliveryPolicy, WorkspaceDeliveryPolicyConfig } from './workspaceDelivery.js';
132
141
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** Server-owned workspace delivery growth contract; never request supplied. */
2
+ export interface WorkspaceDeliveryPolicy {
3
+ /** Maximum active workspace delivery rows (queued+delivered, unexpired). */
4
+ cap: number;
5
+ /**
6
+ * Optional reserve carved OUT of `cap` for server-classified targeted sends.
7
+ * Broadcast admission requires `depth + new <= cap - reserve`; targeted
8
+ * admission requires `depth + new <= cap`. Must satisfy `0 <= reserve < cap`.
9
+ */
10
+ reserve?: number;
11
+ }
12
+ export interface WorkspaceDeliveryPolicyConfig {
13
+ cap?: number;
14
+ reserve?: number;
15
+ workspaces?: Record<string, {
16
+ cap?: number;
17
+ reserve?: number;
18
+ } | undefined>;
19
+ /**
20
+ * Server-only async resolver for dynamic, request-time plans (e.g. a
21
+ * KV-backed effective plan lookup). When present it takes precedence over the
22
+ * static `cap`/`workspaces` fields, so a host whose plan is async does not
23
+ * have to flatten every workspace into static config. Never source this from
24
+ * a client request.
25
+ */
26
+ resolve?: (workspace: {
27
+ id: string;
28
+ plan: string;
29
+ }) => Promise<WorkspaceDeliveryPolicy | undefined>;
30
+ }
31
+ //# sourceMappingURL=workspaceDelivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceDelivery.d.ts","sourceRoot":"","sources":["../../src/ports/workspaceDelivery.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;CACrG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspaceDelivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceDelivery.js","sourceRoot":"","sources":["../../src/ports/workspaceDelivery.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/routes/a2a.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAsBxC,eAAO,MAAM,SAAS,qDAAqB,CAAC"}
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/routes/a2a.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAuBxC,eAAO,MAAM,SAAS,qDAAqB,CAAC"}
@@ -1,11 +1,13 @@
1
+ import { resolveWorkspaceDeliveryPolicyFor, resolveWorkspaceDeliveryPolicyById, WorkspaceDeliveryCapacityError } from '../engine/workspaceDeliveryPolicy.js';
1
2
  import { Hono } from 'hono';
2
3
  import { and, eq } from 'drizzle-orm';
3
4
  import { z } from 'zod';
4
- import { a2aAgents, agents, messages, workspaces } from '../db/schema.js';
5
+ import { a2aAgents, a2aInbound, agents, messages, workspaces } from '../db/schema.js';
5
6
  import { requireAuth, hashToken } from '../middleware/auth.js';
6
- import { asCodedError, errorResponse } from '../lib/httpError.js';
7
+ import { asCodedError, codedError, errorResponse } from '../lib/httpError.js';
7
8
  import { rateLimit } from '../middleware/rateLimit.js';
8
- import { runIdempotent } from '../middleware/idempotency.js';
9
+ import { buildIdempotencyStorageKey, runIdempotent } from '../middleware/idempotency.js';
10
+ import { sha256Hex } from '../lib/crypto.js';
9
11
  import { runInBackground } from './background.js';
10
12
  import { resolveMailboxConfig } from '../engine/mailboxConfig.js';
11
13
  import * as a2aEngine from '../engine/a2a.js';
@@ -16,6 +18,93 @@ import { notifyDeliveryRejections, routeDeliveryOutcomes } from './deliveryRouti
16
18
  import { sendWebhookEvent } from './webhookOutbox.js';
17
19
  import { jsonCreated, jsonError, jsonNotFound, jsonOk, parseJsonBody, } from '../lib/httpResponse.js';
18
20
  export const a2aRoutes = new Hono();
21
+ // This exact completion format is written only after atomic SQL admission.
22
+ // Published legacy acceptances instead contain a full response and plaintext
23
+ // fingerprint. Never interpret partial/unknown legacy records as this marker.
24
+ const sqlInboundCompletionSchema = z.object({
25
+ status: z.union([z.literal(200), z.literal(201)]),
26
+ data: z.object({ id: z.string().min(1) }).strict(),
27
+ fingerprint: z.string().regex(/^[a-f0-9]{64}$/),
28
+ }).strict();
29
+ // KV is only an advisory completion cache. Public content and the replay
30
+ // decision belong to SQL, where source pruning can scrub them atomically.
31
+ async function receiveIdempotently(c, options) {
32
+ const inboundId = options.key
33
+ ? `a2ai_${await sha256Hex(JSON.stringify([options.workspaceId, options.actorId, options.scope, options.key]))}` : null;
34
+ const [retained] = inboundId ? await c.get('db').select().from(a2aInbound).where(eq(a2aInbound.id, inboundId)) : [];
35
+ // SQL admissions survive a later KV outage. sendDm checks fingerprint/source
36
+ // and handles expiry before returning a replay or admitting a fresh identity.
37
+ if (retained)
38
+ return { status: options.status ?? 201, data: await options.operation(), replayed: retained.createdAt.getTime() + 86_400_000 > Date.now() };
39
+ const completionKey = options.kv && options.key
40
+ ? await buildIdempotencyStorageKey(options.workspaceId, options.actorId, options.scope, options.key) : null;
41
+ const sqlAuthoritativeKv = options.kv && completionKey ? new Proxy(options.kv, {
42
+ get(target, property) {
43
+ if (property === 'get')
44
+ return async (key) => {
45
+ const raw = await target.get(key);
46
+ // SQL absence was verified above. Source pruning retains a SQL
47
+ // tombstone; only expiry cleanup removes that identity. A delayed KV
48
+ // completion cannot extend its window or reject a new fingerprint.
49
+ // sendDm rechecks SQL atomically if another admission races this read.
50
+ if (key === completionKey && raw && sqlInboundCompletionSchema.safeParse(JSON.parse(raw)).success)
51
+ return null;
52
+ return raw;
53
+ };
54
+ const value = Reflect.get(target, property);
55
+ return typeof value === 'function' ? value.bind(target) : value;
56
+ },
57
+ }) : options.kv;
58
+ let fresh;
59
+ const result = await runIdempotent({
60
+ ...options,
61
+ kv: sqlAuthoritativeKv,
62
+ fingerprint: options.fingerprint ? await sha256Hex(options.fingerprint) : undefined,
63
+ compatibleFingerprints: options.fingerprint ? [options.fingerprint] : [],
64
+ requireFingerprint: true,
65
+ requireKvRead: Boolean(options.kv),
66
+ afterOperation: undefined,
67
+ operation: async () => {
68
+ fresh = await options.operation();
69
+ return { id: fresh.id };
70
+ },
71
+ });
72
+ if (fresh)
73
+ return { ...result, data: fresh };
74
+ // Published8.9.1 stored the full response with a plaintext fingerprint. It
75
+ // predates SQL admission: promote that response, never run a fresh send.
76
+ if (result.data && 'message' in result.data) {
77
+ try {
78
+ return { ...result, data: await options.operation(result.data) };
79
+ }
80
+ finally {
81
+ const [promoted] = inboundId ? await c.get('db').select({ id: a2aInbound.id }).from(a2aInbound).where(eq(a2aInbound.id, inboundId)) : [];
82
+ // Only discard old content after SQL owns the identity/tombstone. A KV
83
+ // cleanup outage never restarts its original TTL or bypasses SQL replay.
84
+ if (promoted && options.kv && options.key) {
85
+ const key = await buildIdempotencyStorageKey(options.workspaceId, options.actorId, options.scope, options.key);
86
+ try {
87
+ await options.kv.delete(key);
88
+ }
89
+ catch { /* original bounded KV TTL remains */ }
90
+ }
91
+ }
92
+ }
93
+ const [winner] = inboundId ? await c.get('db').select().from(a2aInbound).where(eq(a2aInbound.id, inboundId)) : [];
94
+ if (!winner)
95
+ throw codedError('Accepted A2A message is no longer retained', 'a2a_message_not_retained', 410);
96
+ return { ...result, data: await options.operation() };
97
+ }
98
+ function admittedInbound(c, workspaceId, senderAgentId) {
99
+ return (data, event) => {
100
+ runInBackground(c, c.get('engine').realtime.publishToWorkspaceStream({ workspaceId, event: { ...event.payload, seq: event.seq } }), 'publish admitted inbound dm.received');
101
+ runInBackground(c, c.get('engine').webhookQueue.send({ type: 'dm.received', workspaceId, data: event.data, outboxId: event.outboxId }), 'queue admitted inbound dm.received');
102
+ if (data._delivery_rejections.length)
103
+ runInBackground(c, notifyDeliveryRejections(c, senderAgentId, data._delivery_rejections, workspaceId), 'notify admitted inbound rejection');
104
+ if (data._delivery)
105
+ runInBackground(c, routeDeliveryOutcomes(c, [data._delivery], 'dm.received', event.data, { workspaceId }), 'route admitted inbound delivery');
106
+ };
107
+ }
19
108
  const registerA2aSchema = z.object({
20
109
  agent_card_url: z.string().url().optional(),
21
110
  agent_card: a2aEngine.A2aAgentCardSchema.optional(),
@@ -32,7 +121,6 @@ const updateA2aConnectionSchema = z.object({
32
121
  target_agent: z.string().min(1).nullable().optional(),
33
122
  }).refine((value) => Object.values(value).some((field) => field !== undefined), { message: 'At least one connection field is required' });
34
123
  const rpcRequestSchema = a2aEngine.JsonRpcRequestSchema;
35
- const rpcWebhookSchema = z.union([a2aEngine.JsonRpcRequestSchema, a2aEngine.JsonRpcResponseSchema]);
36
124
  function jsonRpcHttpStatus(response) {
37
125
  return response.error ? 400 : 200;
38
126
  }
@@ -116,6 +204,7 @@ function extractCorrelationId(payload) {
116
204
  async function findWebhookAgentByName(db, relayName, workspaceId) {
117
205
  const [row] = await db
118
206
  .select({
207
+ registrationId: a2aAgents.id,
119
208
  workspaceId: a2aAgents.workspaceId,
120
209
  relayAgentId: a2aAgents.relayAgentId,
121
210
  relayName: agents.name,
@@ -286,6 +375,7 @@ a2aRoutes.get('/.well-known/agent-card.json', handleWorkspaceAgentCard);
286
375
  a2aRoutes.get('/:workspace/.well-known/agent-card.json', handleWorkspaceAgentCard);
287
376
  // POST /a2a/rpc
288
377
  a2aRoutes.post('/a2a/rpc', requireAuth, rateLimit, async (c) => {
378
+ let correlationId;
289
379
  try {
290
380
  const db = c.get('db');
291
381
  const workspace = c.get('workspace');
@@ -294,6 +384,7 @@ a2aRoutes.post('/a2a/rpc', requireAuth, rateLimit, async (c) => {
294
384
  return jsonResponse(c, a2aEngine.jsonRpcError(undefined, -32600, 'Invalid Request'), 400);
295
385
  }
296
386
  const request = parsed.data;
387
+ correlationId = request.id ?? undefined;
297
388
  const targetAgentName = extractTargetAgentName(request.params, request.params?.message?.context_id);
298
389
  if (!targetAgentName) {
299
390
  const response = a2aEngine.jsonRpcError(request.id, -32602, 'target_agent or agent_name is required');
@@ -361,7 +452,7 @@ a2aRoutes.post('/a2a/rpc', requireAuth, rateLimit, async (c) => {
361
452
  : typeof request.id === 'string' || typeof request.id === 'number'
362
453
  ? String(request.id)
363
454
  : null;
364
- const idempotent = await runIdempotent({
455
+ const idempotent = await receiveIdempotently(c, {
365
456
  workspaceId: workspace.id,
366
457
  actorId: authenticatedAgent.id,
367
458
  scope: 'a2a:inbound',
@@ -373,18 +464,24 @@ a2aRoutes.post('/a2a/rpc', requireAuth, rateLimit, async (c) => {
373
464
  data: relayMessage.metadata ?? null,
374
465
  }),
375
466
  kv: c.get('engine').kv,
376
- operation: () => dmEngine.sendDm(db, workspace.id, authenticatedAgent.id, {
467
+ operation: async (legacyInbound) => dmEngine.sendDm(db, workspace.id, authenticatedAgent.id, {
377
468
  to: targetAgentName,
378
469
  text: relayMessage.text,
379
470
  mode: 'wait',
380
471
  data: relayMessage.metadata,
381
472
  }, {
382
473
  skipA2aIntercept: true,
474
+ legacyInbound,
475
+ receivedA2aAgentId: registeredCaller.id,
476
+ receivedA2aTokenHash: authenticatedAgent.tokenHash,
477
+ inboundIdentity: inboundMessageId ? { scope: 'a2a:inbound', key: `${registeredCaller.id}:${inboundMessageId}` } : undefined,
478
+ afterAdmission: admittedInbound(c, workspace.id, authenticatedAgent.id),
383
479
  // Without this, sendDm falls back to its fixed one-hour / 1000-message
384
480
  // defaults and a registered peer's deliveries quietly ignore whatever
385
481
  // TTL and depth cap the operator configured — the one delivery path on
386
482
  // the deployment that is exempt from its own backpressure settings.
387
483
  mailbox: resolveMailboxConfig(c.get('engine').config, workspace.id),
484
+ resolveWorkspaceDeliveryPolicy: () => resolveWorkspaceDeliveryPolicyFor(c.get('engine').config, workspace),
388
485
  }),
389
486
  });
390
487
  const sent = idempotent.data;
@@ -394,8 +491,7 @@ a2aRoutes.post('/a2a/rpc', requireAuth, rateLimit, async (c) => {
394
491
  // request observably different from a single one, which is the thing
395
492
  // idempotency exists to prevent. The response below is identical either
396
493
  // way, so the caller cannot tell — which is the point.
397
- if (!idempotent.replayed) {
398
- await a2aEngine.incrementA2aMessagesReceived(db, registeredCaller.id);
494
+ if (!idempotent.replayed && !sent._notifications_durable) {
399
495
  // Fanout and delivery routing run in the background, as `/v1/dm` does.
400
496
  // Awaiting them made the counterparty's "message accepted" wait on our
401
497
  // recipient's delivery — including a slow HTTP-push receiver — so a
@@ -459,12 +555,17 @@ a2aRoutes.post('/a2a/rpc', requireAuth, rateLimit, async (c) => {
459
555
  }
460
556
  }
461
557
  catch (err) {
558
+ if (err instanceof WorkspaceDeliveryCapacityError) {
559
+ c.header('Retry-After', '30');
560
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32000, err.message, { code: err.code, retryable: true }), 429);
561
+ }
462
562
  const error = asCodedError(err);
463
- return jsonResponse(c, a2aEngine.jsonRpcError(undefined, -32000, error.message || 'Internal error', error.data), error.status || 500);
563
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32000, error.message || 'Internal error', error.data ?? (error.code ? { code: error.code } : undefined)), error.status || 500);
464
564
  }
465
565
  });
466
566
  // POST /a2a/webhook/:workspace_id/:agent_name
467
567
  a2aRoutes.post('/a2a/webhook/:workspace_id/:agent_name', async (c) => {
568
+ let correlationId;
468
569
  try {
469
570
  const db = c.get('db');
470
571
  const workspaceId = c.req.param('workspace_id');
@@ -480,13 +581,32 @@ a2aRoutes.post('/a2a/webhook/:workspace_id/:agent_name', async (c) => {
480
581
  if (!tokenHash || tokenHash !== relayAgent.tokenHash) {
481
582
  return jsonError(c, 'unauthorized', 'Missing or invalid bearer token', 401);
482
583
  }
483
- const parsed = rpcWebhookSchema.safeParse(await c.req.json());
584
+ const rawPayload = await c.req.json();
585
+ // A request must never fall through to the response schema, which strips
586
+ // method/params and could turn an invalid request into a correlated DM.
587
+ const isRequest = rawPayload !== null && typeof rawPayload === 'object'
588
+ && Object.hasOwn(rawPayload, 'method');
589
+ const requestPayload = a2aEngine.JsonRpcRequestSchema.safeParse(rawPayload);
590
+ const parsed = isRequest
591
+ ? requestPayload
592
+ : a2aEngine.JsonRpcResponseSchema.safeParse(rawPayload);
593
+ correlationId = typeof rawPayload?.id === 'string' || typeof rawPayload?.id === 'number'
594
+ ? rawPayload.id : undefined;
484
595
  if (!parsed.success) {
485
- return jsonResponse(c, a2aEngine.jsonRpcError(undefined, -32600, 'Invalid Request'), 400);
596
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32600, 'Invalid Request'), 400);
486
597
  }
487
598
  const payload = parsed.data;
599
+ // Preserve explicit ID types and the published message/task fallback.
600
+ correlationId = payload.id ?? extractCorrelationId(payload) ?? undefined;
601
+ if (isRequest && requestPayload.success) {
602
+ if (requestPayload.data.method !== 'message/send' && requestPayload.data.method !== 'message/stream') {
603
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32601, `Unsupported method "${requestPayload.data.method}"`), 400);
604
+ }
605
+ if (!requestPayload.data.params?.message) {
606
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32602, 'message is required'), 400);
607
+ }
608
+ }
488
609
  const relayMessage = a2aEngine.translateA2aToRelay(payload);
489
- const requestPayload = a2aEngine.JsonRpcRequestSchema.safeParse(payload);
490
610
  let targetAgentName = requestPayload.success
491
611
  ? extractTargetAgentName(requestPayload.data.params, requestPayload.data.params?.message?.context_id)
492
612
  : null;
@@ -502,22 +622,34 @@ a2aRoutes.post('/a2a/webhook/:workspace_id/:agent_name', async (c) => {
502
622
  }
503
623
  }
504
624
  if (!targetAgentName) {
505
- const response = a2aEngine.jsonRpcError(extractCorrelationId(payload) ?? undefined, -32602, 'target_agent or agent_name is required');
625
+ const response = a2aEngine.jsonRpcError(correlationId, -32602, 'target_agent or agent_name is required');
506
626
  return jsonResponse(c, response, jsonRpcHttpStatus(response));
507
627
  }
508
- const sent = await dmEngine.sendDm(db, relayAgent.workspaceId, relayAgent.relayAgentId, {
509
- to: targetAgentName,
510
- text: relayMessage.text,
511
- mode: 'wait',
512
- data: relayMessage.metadata,
513
- }, {
514
- skipA2aIntercept: true,
628
+ const inboundKey = requestPayload.success
629
+ ? requestPayload.data.params?.message?.message_id ?? String(requestPayload.data.id ?? '')
630
+ : extractCorrelationId(payload);
631
+ const idempotent = await receiveIdempotently(c, {
632
+ workspaceId: relayAgent.workspaceId,
633
+ actorId: relayAgent.relayAgentId,
634
+ scope: 'a2a:webhook',
635
+ key: inboundKey || undefined,
636
+ fingerprint: JSON.stringify({ to: targetAgentName, text: relayMessage.text, data: relayMessage.metadata ?? null }),
637
+ kv: c.get('engine').kv,
638
+ operation: async (legacyInbound) => dmEngine.sendDm(db, relayAgent.workspaceId, relayAgent.relayAgentId, {
639
+ to: targetAgentName, text: relayMessage.text, mode: 'wait', data: relayMessage.metadata,
640
+ }, {
641
+ skipA2aIntercept: true,
642
+ legacyInbound,
643
+ receivedA2aAgentId: relayAgent.registrationId,
644
+ receivedA2aTokenHash: tokenHash,
645
+ inboundIdentity: inboundKey ? { scope: 'a2a:webhook', key: inboundKey } : undefined,
646
+ afterAdmission: admittedInbound(c, relayAgent.workspaceId, relayAgent.relayAgentId),
647
+ mailbox: resolveMailboxConfig(c.get('engine').config, relayAgent.workspaceId),
648
+ resolveWorkspaceDeliveryPolicy: () => resolveWorkspaceDeliveryPolicyById(db, c.get('engine').config, relayAgent.workspaceId),
649
+ }),
515
650
  });
516
- const a2aRecord = await a2aEngine.getA2aAgentByRelayName(db, relayAgent.workspaceId, relayName);
517
- if (a2aRecord) {
518
- await a2aEngine.incrementA2aMessagesReceived(db, a2aRecord.id);
519
- }
520
- const response = a2aEngine.jsonRpcSuccess(extractCorrelationId(payload) ?? undefined, {
651
+ const sent = idempotent.data;
652
+ const response = a2aEngine.jsonRpcSuccess(correlationId, {
521
653
  task: {
522
654
  id: sent.message.id,
523
655
  context_id: relayMessage.thread_id ?? sent.conversation_id,
@@ -541,8 +673,12 @@ a2aRoutes.post('/a2a/webhook/:workspace_id/:agent_name', async (c) => {
541
673
  return jsonResponse(c, response);
542
674
  }
543
675
  catch (err) {
676
+ if (err instanceof WorkspaceDeliveryCapacityError) {
677
+ c.header('Retry-After', '30');
678
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32000, err.message, { code: err.code, retryable: true }), 429);
679
+ }
544
680
  const error = asCodedError(err);
545
- return jsonResponse(c, a2aEngine.jsonRpcError(undefined, -32000, error.message || 'Internal error', error.data), error.status || 500);
681
+ return jsonResponse(c, a2aEngine.jsonRpcError(correlationId, -32000, error.message || 'Internal error', error.data ?? (error.code ? { code: error.code } : undefined)), error.status || 500);
546
682
  }
547
683
  });
548
684
  //# sourceMappingURL=a2a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/routes/a2a.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/routes/a2a.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,kCAAkC,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC7J,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,MAAM,EACN,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAU,CAAC;AAE5C,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAChD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,yEAAyE;AACzE,0EAA0E;AAC1E,KAAK,UAAU,mBAAmB,CAAC,CAAkB,EAAE,OAEtD;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG;QAC3B,CAAC,CAAC,QAAQ,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzH,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpH,6EAA6E;IAC7E,8EAA8E;IAC9E,IAAI,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC1J,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG;QAC7C,CAAC,CAAC,MAAM,0BAA0B,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9G,MAAM,kBAAkB,GAAG,OAAO,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;QAC7E,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,IAAI,QAAQ,KAAK,KAAK;gBAAE,OAAO,KAAK,EAAE,GAAW,EAAE,EAAE;oBACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClC,+DAA+D;oBAC/D,qEAAqE;oBACrE,mEAAmE;oBACnE,uEAAuE;oBACvE,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,IAAI,0BAA0B,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;wBAAE,OAAO,IAAI,CAAC;oBAC/G,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;KACF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChB,IAAI,KAAwC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,GAAG,OAAO;QACV,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QACnF,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACxE,kBAAkB,EAAE,IAAI;QACxB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,cAAc,EAAE,SAAS;QACzB,SAAS,EAAE,KAAK,IAAI,EAAE;YACpB,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IACH,IAAI,KAAK;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7C,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC;YAAC,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAAC,CAAC;gBACjE,CAAC;YACP,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzI,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,QAAQ,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC/G,IAAI,CAAC;oBAAC,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClH,IAAI,CAAC,MAAM;QAAE,MAAM,UAAU,CAAC,4CAA4C,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC7G,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,CAAkB,EAAE,WAAmB,EAAE,aAAqB;IACrF,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACrB,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAC5K,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAC9K,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM;YAAE,eAAe,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,EAAE,mCAAmC,CAAC,CAAC;QAClL,IAAI,IAAI,CAAC,SAAS;YAAE,eAAe,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,iCAAiC,CAAC,CAAC;IACpK,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3C,UAAU,EAAE,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACnD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,EAAE;IAC7D,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,CAAC,gBAAgB,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC,MAAM,CACP,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,EACpE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CACzD,CAAC;AAEF,MAAM,gBAAgB,GAAG,SAAS,CAAC,oBAAoB,CAAC;AAExD,SAAS,iBAAiB,CAAC,QAAsC;IAC/D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,CAAkB,EAAE,IAAa,EAAE,MAAM,GAAG,GAAG;IACnE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,CAAkB,EAAE,GAAY;IACtD,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAkB;IAC1C,OAAO,YAAY,CAAC,CAAC,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAkB,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAkB;IAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,2EAA2E;IAC3E,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACtD,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;QAChE,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,MAA2C,EAAE,iBAA0B;IACrG,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,YAAY;QACpB,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI;YAC/D,CAAC,CAAE,MAAM,CAAC,QAAoC,CAAC,UAAU;YACzD,CAAC,CAAC,SAAS;QACb,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI;YAC/D,CAAC,CAAE,MAAM,CAAC,QAAoC,CAAC,YAAY;YAC3D,CAAC,CAAC,SAAS;KACd,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7F,IAAI,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE7F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmE;IAC/F,MAAM,aAAa,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ;YAC3F,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;IAC7D,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC,cAAc,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ;QAC7F,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU;eAC5C,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;eACpC,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,EAA6B,EAAE,SAAiB,EAAE,WAAmB;IACzG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC;QACN,cAAc,EAAE,SAAS,CAAC,EAAE;QAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,SAAS,EAAE,MAAM,CAAC,IAAI;QACtB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;SACD,IAAI,CAAC,SAAS,CAAC;SACf,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACxD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,wBAAwB;AACxB,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;QACrG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAChE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;YACxC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YACjC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACnC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;YAC3C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;SACtC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC,CAAC,EAAE;YACpB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;YACnD,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,SAAS,CAAC,KAAK,CAAC,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,yBAAyB,EAAE,2CAA2C,CAAC,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,wBAAwB,CACtD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EACX,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EACnB;YACE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACnC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;YAC3C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;SACtC,CACF,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,EAAE;YACf,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,cAAc,EAAE,gBAAgB,IAAI,IAAI;YAC9D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,8BAA8B;AAC9B,SAAS,CAAC,MAAM,CAAC,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,qBAAqB;AACrB,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,gCAAgC;AAChC,SAAS,CAAC,GAAG,CAAC,2BAA2B,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,wBAAwB,CAAC,CAAkB;IACxD,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACrD,KAAK;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,CAAkB;IACxD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvB,+CAA+C;QAC/C,IAAI,SAAS,GAAG,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE;qBAClB,MAAM,EAAE;qBACR,IAAI,CAAC,UAAU,CAAC;qBAChB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC7C,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,EAAE;QACF,8DAA8D;QAC9D,EAAE;QACF,4EAA4E;QAC5E,oEAAoE;QACpE,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,gCAAgC;QAChC,0EAA0E;QAC1E,4EAA4E;QAC5E,wEAAwE;QACxE,oBAAoB;QACpB,EAAE;QACF,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,gEAAgE;QAChE,IACE,CAAC,SAAS;eACP,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;eACzB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAC5B,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,YAAY,CAAC,CAAC,EAAE,qBAAqB,EAAE,2GAA2G,CAAC,CAAC;QAC7J,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAChH,OAAO,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,mCAAmC;AACnC,SAAS,CAAC,GAAG,CAAC,8BAA8B,EAAE,wBAAwB,CAAC,CAAC;AACxE,SAAS,CAAC,GAAG,CAAC,yCAAyC,EAAE,wBAAwB,CAAC,CAAC;AAEnF,gBAAgB;AAChB,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7D,IAAI,aAA0C,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,aAAa,GAAG,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC;QACxC,MAAM,eAAe,GAAG,sBAAsB,CAC5C,OAAO,CAAC,MAA6C,EACrD,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CACpC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,wCAAwC,CAAC,CAAC;YACtG,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAEzF,kEAAkE;QAClE,0EAA0E;QAC1E,2EAA2E;QAC3E,uBAAuB;QACvB,MAAM,kBAAkB,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAG,kBAAkB;YAC3C,CAAC,CAAC,MAAM,EAAE;iBACP,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;iBAC5B,IAAI,CAAC,SAAS,CAAC;iBACf,KAAK,CAAC,GAAG,CACR,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,EACvC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAClD,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACtC,oEAAoE;gBACpE,EAAE;gBACF,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,kEAAkE;gBAClE,oEAAoE;gBACpE,8DAA8D;gBAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,gBAAgB;oBAChD,CAAC,CAAC,iFAAiF;oBACnF,CAAC,CAAC,+BAA+B,OAAO,CAAC,MAAM,GAAG,CAAC;gBACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACpE,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;gBACnF,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,gEAAgE,CAAC,CAAC;gBAC9H,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE;iBAC3B,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBACzB,IAAI,CAAC,MAAM,CAAC;iBACZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,wBAAwB,eAAe,GAAG,CAAC,CAAC;gBACxG,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,YAAY,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAE5D,2EAA2E;YAC3E,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,wEAAwE;YACxE,oEAAoE;YACpE,oCAAoC;YACpC,EAAE;YACF,wEAAwE;YACxE,0EAA0E;YAC1E,mDAAmD;YACnD,MAAM,gBAAgB,GACpB,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ;gBACrD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;gBACnC,CAAC,CAAC,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;oBAChE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpB,CAAC,CAAC,IAAI,CAAC;YAEb,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,CAAC,EAAE;gBAC9C,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,OAAO,EAAE,kBAAmB,CAAC,EAAE;gBAC/B,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;gBAChF,MAAM,EAAE,GAAG;gBACX,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC1B,EAAE,EAAE,eAAe;oBACnB,IAAI,EAAE,YAAY,CAAC,IAAI;oBACvB,IAAI,EAAE,YAAY,CAAC,QAAQ,IAAI,IAAI;iBACpC,CAAC;gBACF,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACtB,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,kBAAmB,CAAC,EAAE,EAAE;oBAC5F,EAAE,EAAE,eAAe;oBACnB,IAAI,EAAE,YAAY,CAAC,IAAI;oBACvB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,CAAC,QAAQ;iBAC5B,EAAE;oBACD,gBAAgB,EAAE,IAAI;oBACtB,aAAa;oBACb,kBAAkB,EAAE,gBAAgB,CAAC,EAAE;oBACvC,oBAAoB,EAAE,kBAAmB,CAAC,SAAS;oBACnD,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,EAAE,IAAI,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC3H,cAAc,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,kBAAmB,CAAC,EAAE,CAAC;oBACxE,uEAAuE;oBACvE,sEAAsE;oBACtE,uEAAuE;oBACvE,oEAAoE;oBACpE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;oBACnE,8BAA8B,EAAE,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC;iBAC3G,CAAC;aACH,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAE7B,oEAAoE;YACpE,0EAA0E;YAC1E,oEAAoE;YACpE,qEAAqE;YACrE,wEAAwE;YACxE,uDAAuD;YACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACzD,uEAAuE;gBACvE,uEAAuE;gBACvE,oEAAoE;gBACpE,uEAAuE;gBACvE,sEAAsE;gBACtE,4DAA4D;gBAC5D,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,kBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzF,eAAe,CACb,CAAC,EACD,gBAAgB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACxF,iCAAiC,CAClC,CAAC;gBACF,eAAe,CACb,CAAC,EACD,qBAAqB,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAClD,iCAAiC,CAClC,CAAC;gBACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,eAAe,CACb,CAAC,EACD,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EACpE,+BAA+B,CAChC,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzC,eAAe,CACb,CAAC,EACD,wBAAwB,CAAC,CAAC,EAAE,kBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAC9E,sCAAsC,CACvC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;gBACpD,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;oBACnB,UAAU,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe;oBAC1D,MAAM,EAAE;wBACN,KAAK,EAAE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC;wBAC5C,OAAO,EAAE,+BAA+B;qBACzC;oBACD,OAAO,EAAE,CAAC;4BACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;4BAC3B,IAAI,EAAE,OAAO;4BACb,UAAU,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe;4BAC1D,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;4BAClD,QAAQ,EAAE,YAAY,CAAC,QAAQ;yBAChC,CAAC;oBACF,QAAQ,EAAE;wBACR,eAAe,EAAE,IAAI,CAAC,eAAe;wBACrC,WAAW,EAAE,kBAAmB,CAAC,IAAI;wBACrC,YAAY,EAAE,eAAe;qBAC9B;iBACF;aACF,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,sBAAsB,eAAe,GAAG,CAAC,CAAC;YACtG,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,cAAc,CAAC;YACpB,KAAK,gBAAgB,CAAC;YACtB,KAAK,UAAU,CAAC;YAChB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE;oBACjF,MAAM,EAAE,MAAM,CAAC,WAAW;oBAC1B,UAAU,EAAE,MAAM,CAAC,eAAe;iBACnC,CAAC,CAAC;gBACH,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxD,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,uBAAuB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtG,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,8BAA8B,EAAE,CAAC;YAClD,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/H,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAoC,CAAC;QACnE,OAAO,YAAY,CACjB,CAAC,EACD,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,gBAAgB,EAC7E,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAChE,KAAK,CAAC,MAAM,IAAI,GAAG,CACpB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,8CAA8C;AAC9C,SAAS,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnE,IAAI,aAA0C,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAE5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;YAChE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC,CAAC,EAAE,cAAc,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtC,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,SAAS,GAAG,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ;eAClE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1D,aAAa,GAAG,OAAO,UAAU,EAAE,EAAE,KAAK,QAAQ,IAAI,OAAO,UAAU,EAAE,EAAE,KAAK,QAAQ;YACtF,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,sEAAsE;QACtE,aAAa,GAAG,OAAO,CAAC,EAAE,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QACzE,IAAI,SAAS,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBACrG,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EACjE,uBAAuB,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACzC,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,EAAE,GAAG,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,eAAe,GAAG,cAAc,CAAC,OAAO;YAC1C,CAAC,CAAC,sBAAsB,CACtB,cAAc,CAAC,IAAI,CAAC,MAA6C,EACjE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAChD;YACD,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE;qBAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;qBAClC,IAAI,CAAC,QAAQ,CAAC;qBACd,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;qBAClD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBAChG,eAAe,GAAG,cAAc,EAAE,SAAS,IAAI,IAAI,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CACrC,aAAa,EACb,CAAC,KAAK,EACN,wCAAwC,CACzC,CAAC;YACF,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO;YACvC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YACzF,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,CAAC,EAAE;YAC9C,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,OAAO,EAAE,UAAU,CAAC,YAAY;YAChC,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,UAAU,IAAI,SAAS;YAC5B,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAClH,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE;YACtB,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,EAAE;gBACvG,EAAE,EAAE,eAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ;aACzF,EAAE;gBACD,gBAAgB,EAAE,IAAI;gBACtB,aAAa;gBACb,kBAAkB,EAAE,UAAU,CAAC,cAAc;gBAC7C,oBAAoB,EAAE,SAAS;gBAC/B,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnF,cAAc,EAAE,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC;gBACnF,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAC7E,8BAA8B,EAAE,GAAG,EAAE,CAAC,kCAAkC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;aAC7H,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE;YACvD,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBACnB,UAAU,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe;gBAC1D,MAAM,EAAE;oBACN,KAAK,EAAE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC;oBAC5C,OAAO,EAAE,+BAA+B;iBACzC;gBACD,OAAO,EAAE,CAAC;wBACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;wBAC3B,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe;wBAC1D,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;qBACnD,CAAC;gBACF,QAAQ,EAAE;oBACR,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,eAAe;iBAC9B;aACF;SACF,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,8BAA8B,EAAE,CAAC;YAClD,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/H,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAoC,CAAC;QACnE,OAAO,YAAY,CACjB,CAAC,EACD,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,gBAAgB,EAC7E,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAChE,KAAK,CAAC,MAAM,IAAI,GAAG,CACpB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/routes/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAgBxC,eAAO,MAAM,cAAc,qDAAqB,CAAC"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/routes/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAiBxC,eAAO,MAAM,cAAc,qDAAqB,CAAC"}
@@ -6,6 +6,7 @@ import { fanoutToAgents } from './fanout.js';
6
6
  import { runInBackground } from './background.js';
7
7
  import { errorResponse } from '../lib/httpError.js';
8
8
  import { jsonNotFound, jsonOk, parseJsonBody, parseOptionalJsonBody, parseQueryParams, } from '../lib/httpResponse.js';
9
+ import { resolveWorkspaceDeliveryPolicyFor, WorkspaceDeliveryCapacityError } from '../engine/workspaceDeliveryPolicy.js';
9
10
  import { ListDeliveriesQuerySchema, FailDeliveryRequestSchema, DeferDeliveryRequestSchema } from '@relaycast/types';
10
11
  export const deliveryRoutes = new Hono();
11
12
  // GET /v1/deliveries - durable delivery queue for the calling agent.
@@ -97,10 +98,20 @@ deliveryRoutes.post('/deliveries/:id/defer', requireAgentToken, rateLimit, async
97
98
  const workspace = c.get('workspace');
98
99
  const agent = c.get('agent');
99
100
  const id = c.req.param('id');
100
- const result = await deliveryEngine.deferDelivery(db, workspace.id, agent.id, id, {
101
- availableAt: new Date(parsed.data.available_at),
102
- reason: parsed.data.reason,
103
- });
101
+ let result;
102
+ try {
103
+ result = await deliveryEngine.deferDelivery(db, workspace.id, agent.id, id, {
104
+ availableAt: new Date(parsed.data.available_at),
105
+ reason: parsed.data.reason,
106
+ workspacePolicy: await resolveWorkspaceDeliveryPolicyFor(c.get('engine').config, workspace),
107
+ });
108
+ }
109
+ catch (error) {
110
+ if (error instanceof WorkspaceDeliveryCapacityError) {
111
+ return errorResponse(c, error);
112
+ }
113
+ throw error;
114
+ }
104
115
  if (!result) {
105
116
  return jsonNotFound(c, 'delivery_not_found', 'Delivery not found');
106
117
  }