@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.
- package/dist/adapters/node/index.d.ts.map +1 -1
- package/dist/adapters/node/index.js +6 -0
- package/dist/adapters/node/index.js.map +1 -1
- package/dist/db/migrations/0057_a2a_egress.sql +20 -0
- package/dist/db/migrations/0058_a2a_egress_context.sql +8 -0
- package/dist/db/migrations/0059_a2a_inbound_admission.sql +26 -0
- package/dist/db/schema.d.ts +603 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +34 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/engine/a2a.d.ts +4 -1
- package/dist/engine/a2a.d.ts.map +1 -1
- package/dist/engine/a2a.js +43 -6
- package/dist/engine/a2a.js.map +1 -1
- package/dist/engine/a2aEgress.d.ts +19 -0
- package/dist/engine/a2aEgress.d.ts.map +1 -0
- package/dist/engine/a2aEgress.js +118 -0
- package/dist/engine/a2aEgress.js.map +1 -0
- package/dist/engine/channel.d.ts.map +1 -1
- package/dist/engine/channel.js +56 -17
- package/dist/engine/channel.js.map +1 -1
- package/dist/engine/delivery.d.ts +2 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +20 -4
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/deliveryWire.d.ts.map +1 -1
- package/dist/engine/deliveryWire.js +1 -1
- package/dist/engine/deliveryWire.js.map +1 -1
- package/dist/engine/deliveryWrites.d.ts +9 -0
- package/dist/engine/deliveryWrites.d.ts.map +1 -1
- package/dist/engine/deliveryWrites.js +70 -19
- package/dist/engine/deliveryWrites.js.map +1 -1
- package/dist/engine/dm.d.ts +47 -8
- package/dist/engine/dm.d.ts.map +1 -1
- package/dist/engine/dm.js +239 -42
- package/dist/engine/dm.js.map +1 -1
- package/dist/engine/groupDm.d.ts +2 -0
- package/dist/engine/groupDm.d.ts.map +1 -1
- package/dist/engine/groupDm.js +2 -1
- package/dist/engine/groupDm.js.map +1 -1
- package/dist/engine/inboundWebhook.d.ts +3 -0
- package/dist/engine/inboundWebhook.d.ts.map +1 -1
- package/dist/engine/inboundWebhook.js +7 -1
- package/dist/engine/inboundWebhook.js.map +1 -1
- package/dist/engine/mentions.d.ts +3 -0
- package/dist/engine/mentions.d.ts.map +1 -0
- package/dist/engine/mentions.js +5 -0
- package/dist/engine/mentions.js.map +1 -0
- package/dist/engine/message.d.ts +2 -0
- package/dist/engine/message.d.ts.map +1 -1
- package/dist/engine/message.js +4 -7
- package/dist/engine/message.js.map +1 -1
- package/dist/engine/node.d.ts +2 -2
- package/dist/engine/thread.d.ts +2 -0
- package/dist/engine/thread.d.ts.map +1 -1
- package/dist/engine/thread.js +3 -1
- package/dist/engine/thread.js.map +1 -1
- package/dist/engine/workspaceDeliveryPolicy.d.ts +91 -0
- package/dist/engine/workspaceDeliveryPolicy.d.ts.map +1 -0
- package/dist/engine/workspaceDeliveryPolicy.js +130 -0
- package/dist/engine/workspaceDeliveryPolicy.js.map +1 -0
- package/dist/engine/workspaceEvents.d.ts +120 -0
- package/dist/engine/workspaceEvents.d.ts.map +1 -1
- package/dist/engine/workspaceEvents.js +8 -10
- package/dist/engine/workspaceEvents.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/httpError.d.ts +1 -1
- package/dist/lib/httpError.d.ts.map +1 -1
- package/dist/lib/httpError.js +2 -0
- package/dist/lib/httpError.js.map +1 -1
- package/dist/lib/httpResponse.d.ts +6 -6
- package/dist/middleware/idempotency.d.ts +15 -10
- package/dist/middleware/idempotency.d.ts.map +1 -1
- package/dist/middleware/idempotency.js +9 -9
- package/dist/middleware/idempotency.js.map +1 -1
- package/dist/ports/database.d.ts +4 -20
- package/dist/ports/database.d.ts.map +1 -1
- package/dist/ports/database.js +28 -7
- package/dist/ports/database.js.map +1 -1
- package/dist/ports/index.d.ts +9 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/workspaceDelivery.d.ts +31 -0
- package/dist/ports/workspaceDelivery.d.ts.map +1 -0
- package/dist/ports/workspaceDelivery.js +2 -0
- package/dist/ports/workspaceDelivery.js.map +1 -0
- package/dist/routes/a2a.d.ts.map +1 -1
- package/dist/routes/a2a.js +162 -26
- package/dist/routes/a2a.js.map +1 -1
- package/dist/routes/delivery.d.ts.map +1 -1
- package/dist/routes/delivery.js +15 -4
- package/dist/routes/delivery.js.map +1 -1
- package/dist/routes/deliveryRouting.d.ts +1 -1
- package/dist/routes/deliveryRouting.d.ts.map +1 -1
- package/dist/routes/deliveryRouting.js +8 -7
- package/dist/routes/deliveryRouting.js.map +1 -1
- package/dist/routes/dm.d.ts.map +1 -1
- package/dist/routes/dm.js +27 -8
- package/dist/routes/dm.js.map +1 -1
- package/dist/routes/fanout.d.ts +1 -1
- package/dist/routes/fanout.d.ts.map +1 -1
- package/dist/routes/fanout.js +2 -2
- package/dist/routes/fanout.js.map +1 -1
- package/dist/routes/groupDm.d.ts.map +1 -1
- package/dist/routes/groupDm.js +3 -2
- package/dist/routes/groupDm.js.map +1 -1
- package/dist/routes/inboundWebhook.d.ts.map +1 -1
- package/dist/routes/inboundWebhook.js +8 -2
- package/dist/routes/inboundWebhook.js.map +1 -1
- package/dist/routes/message.d.ts.map +1 -1
- package/dist/routes/message.js +3 -1
- package/dist/routes/message.js.map +1 -1
- package/dist/routes/relayfileInbound.d.ts.map +1 -1
- package/dist/routes/relayfileInbound.js +9 -3
- package/dist/routes/relayfileInbound.js.map +1 -1
- package/dist/routes/thread.d.ts.map +1 -1
- package/dist/routes/thread.js +3 -1
- package/dist/routes/thread.js.map +1 -1
- package/package.json +5 -4
package/dist/ports/database.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
/**
|
|
60
|
-
|
|
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
|
|
75
|
+
while (cause !== null && typeof cause === 'object' && !seen.has(cause)) {
|
|
66
76
|
seen.add(cause);
|
|
67
|
-
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/index.d.ts
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;GAYG;AACH,YAAY,EACV,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,KAAK,GACN,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,aAAa,CAAC;IAClB,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,oBAAoB,CAAC;IACnC,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAW,SAAQ,WAAW,EAAE,eAAe;IAC9D;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACV,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;OAKG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IACF;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,wBAAwB,EAAE,6BAA6B,CAAC;CACpF;AAED,YAAY,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceDelivery.js","sourceRoot":"","sources":["../../src/ports/workspaceDelivery.ts"],"names":[],"mappings":""}
|
package/dist/routes/a2a.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/routes/a2a.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/routes/a2a.js
CHANGED
|
@@ -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
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
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
|
|
517
|
-
|
|
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(
|
|
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
|
package/dist/routes/a2a.js.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/routes/delivery.js
CHANGED
|
@@ -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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
}
|