@relaycast/engine 8.9.1 → 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/delivery.d.ts +2 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +16 -1
- 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/message.d.ts +2 -0
- package/dist/engine/message.d.ts.map +1 -1
- package/dist/engine/message.js +2 -1
- 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 +5 -1
- 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
|
@@ -15,6 +15,13 @@ function nextSeqSql(workspaceId) {
|
|
|
15
15
|
WHERE we.workspace_id = ${workspaceId}
|
|
16
16
|
)`;
|
|
17
17
|
}
|
|
18
|
+
/** Build a strict append for callers that atomically admit the event with a mutation. */
|
|
19
|
+
export function buildWorkspaceEventWrite(db, workspaceId, input) {
|
|
20
|
+
return db.insert(workspaceEvents).values({
|
|
21
|
+
workspaceId, seq: nextSeqSql(workspaceId), type: input.type,
|
|
22
|
+
channelId: input.channelId ?? null, payload: JSON.stringify(input.payload),
|
|
23
|
+
}).returning({ seq: workspaceEvents.seq });
|
|
24
|
+
}
|
|
18
25
|
/**
|
|
19
26
|
* Append one event to the durable workspace event log. `seq` is per-workspace
|
|
20
27
|
* monotonic from 1, assigned inside the INSERT itself (same pattern as the
|
|
@@ -28,16 +35,7 @@ function nextSeqSql(workspaceId) {
|
|
|
28
35
|
*/
|
|
29
36
|
export async function appendWorkspaceEvent(db, workspaceId, input) {
|
|
30
37
|
try {
|
|
31
|
-
const [row] = await db
|
|
32
|
-
.insert(workspaceEvents)
|
|
33
|
-
.values({
|
|
34
|
-
workspaceId,
|
|
35
|
-
seq: nextSeqSql(workspaceId),
|
|
36
|
-
type: input.type,
|
|
37
|
-
channelId: input.channelId ?? null,
|
|
38
|
-
payload: JSON.stringify(input.payload),
|
|
39
|
-
})
|
|
40
|
-
.returning({ seq: workspaceEvents.seq });
|
|
38
|
+
const [row] = await buildWorkspaceEventWrite(db, workspaceId, input);
|
|
41
39
|
return row?.seq ?? null;
|
|
42
40
|
}
|
|
43
41
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceEvents.js","sourceRoot":"","sources":["../../src/engine/workspaceEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,yDAAyD;AACzD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AACtD,qDAAqD;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAiBlD,iFAAiF;AACjF,+EAA+E;AAC/E,kEAAkE;AAClE,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAO7C,SAAS,UAAU,CAAC,WAAmB;IACrC,OAAO,GAAG,CAAQ;;;8BAGU,WAAW;IACrC,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"workspaceEvents.js","sourceRoot":"","sources":["../../src/engine/workspaceEvents.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export { getDb, healthCheck as dbHealthCheck } from './db/index.js';
|
|
|
9
9
|
export type { Db } from './db/index.js';
|
|
10
10
|
export * as schema from './db/schema.js';
|
|
11
11
|
export { deliverEvent } from './engine/eventDelivery.js';
|
|
12
|
+
export { resolveWorkspaceDeliveryPolicy, resolveWorkspaceDeliveryPolicyFor, workspaceGrowthLimit, workspaceActiveDepthSql, WorkspaceDeliveryCapacityError, } from './engine/workspaceDeliveryPolicy.js';
|
|
13
|
+
export type { WorkspaceDeliveryPolicy, WorkspaceDeliveryPolicyConfig, DeliveryAudience, } from './engine/workspaceDeliveryPolicy.js';
|
|
12
14
|
export { runA2aHealthChecks } from './engine/a2a-health.js';
|
|
13
15
|
export { sweepDueNodeDeliveries, sweepDueHttpPushDeliveries } from './routes/deliveryRouting.js';
|
|
14
16
|
export { sweepExpiredDeliveries } from './routes/deliveryRouting.js';
|
|
@@ -30,4 +32,5 @@ export { reapExpiredWorkspaces, drainFileCleanup, DEFAULT_WORKSPACE_REAP_LIMIT,
|
|
|
30
32
|
export { appendWorkspaceEvent, appendAndPublishWorkspaceEvent, listWorkspaceEvents, WORKSPACE_EVENT_LIST_DEFAULT_LIMIT, WORKSPACE_EVENT_LIST_MAX_LIMIT, } from './engine/workspaceEvents.js';
|
|
31
33
|
export type { WorkspaceEventInput, WorkspaceEventRecord } from './engine/workspaceEvents.js';
|
|
32
34
|
export { generateId, getSnowflakeGenerator, snowflakeIdLowerBound, SnowflakeGenerator, } from './engine/snowflake.js';
|
|
35
|
+
export { dispatchA2aEgress, sweepPendingA2aEgress, cleanupA2aEgress, A2A_EGRESS_RETRY_WINDOW_MS } from './engine/a2aEgress.js';
|
|
33
36
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { getDb, healthCheck as dbHealthCheck } from './db/index.js';
|
|
|
10
10
|
export * as schema from './db/schema.js';
|
|
11
11
|
// Webhook delivery + scheduled-task helpers adapters wire to their queue/cron.
|
|
12
12
|
export { deliverEvent } from './engine/eventDelivery.js';
|
|
13
|
+
export { resolveWorkspaceDeliveryPolicy, resolveWorkspaceDeliveryPolicyFor, workspaceGrowthLimit, workspaceActiveDepthSql, WorkspaceDeliveryCapacityError, } from './engine/workspaceDeliveryPolicy.js';
|
|
13
14
|
export { runA2aHealthChecks } from './engine/a2a-health.js';
|
|
14
15
|
// Node delivery redrive: queue/cron-backed deployments call this from a
|
|
15
16
|
// scheduled handler to retry queued node deliveries (http_push and ws-node)
|
|
@@ -46,4 +47,5 @@ export { reapExpiredWorkspaces, drainFileCleanup, DEFAULT_WORKSPACE_REAP_LIMIT,
|
|
|
46
47
|
export { appendWorkspaceEvent, appendAndPublishWorkspaceEvent, listWorkspaceEvents, WORKSPACE_EVENT_LIST_DEFAULT_LIMIT, WORKSPACE_EVENT_LIST_MAX_LIMIT, } from './engine/workspaceEvents.js';
|
|
47
48
|
// ID generation.
|
|
48
49
|
export { generateId, getSnowflakeGenerator, snowflakeIdLowerBound, SnowflakeGenerator, } from './engine/snowflake.js';
|
|
50
|
+
export { dispatchA2aEgress, sweepPendingA2aEgress, cleanupA2aEgress, A2A_EGRESS_RETRY_WINDOW_MS } from './engine/a2aEgress.js';
|
|
49
51
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,OAAgB,CAAC;AAE/C,2DAA2D;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiC3C,4DAA4D;AAC5D,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,yDAAyD;AACzD,OAAO,EAAE,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wEAAwE;AACxE,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,yCAAyC;AACzC,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,4CAA4C;AAC5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAK/B,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,2EAA2E;AAC3E,+EAA+E;AAC/E,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAGrC,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,OAAgB,CAAC;AAE/C,2DAA2D;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiC3C,4DAA4D;AAC5D,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,yDAAyD;AACzD,OAAO,EAAE,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qCAAqC,CAAC;AAM7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wEAAwE;AACxE,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,yCAAyC;AACzC,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,4CAA4C;AAC5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAK/B,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,2EAA2E;AAC3E,+EAA+E;AAC/E,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAGrC,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/lib/httpError.d.ts
CHANGED
|
@@ -36,5 +36,5 @@ export declare function errorResponse(c: Context, err: unknown): Response & impo
|
|
|
36
36
|
code: string;
|
|
37
37
|
message: string;
|
|
38
38
|
};
|
|
39
|
-
},
|
|
39
|
+
}, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
40
40
|
//# sourceMappingURL=httpError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpError.d.ts","sourceRoot":"","sources":["../../src/lib/httpError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CASrD;AAED,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAEpF;AAQD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAWjG;AAMD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,MAAM,SAA6B,GAClC,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO;;;;;;
|
|
1
|
+
{"version":3,"file":"httpError.d.ts","sourceRoot":"","sources":["../../src/lib/httpError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CASrD;AAED,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAEpF;AAQD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAWjG;AAMD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,MAAM,SAA6B,GAClC,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO;;;;;;iXAarD"}
|
package/dist/lib/httpError.js
CHANGED
|
@@ -53,6 +53,8 @@ export function safeClientErrorMessage(error, status = effectiveHttpStatus(error
|
|
|
53
53
|
*/
|
|
54
54
|
export function errorResponse(c, err) {
|
|
55
55
|
const error = asCodedError(err);
|
|
56
|
+
if (error.code === 'workspace_delivery_depth_exceeded')
|
|
57
|
+
c.header('Retry-After', '30');
|
|
56
58
|
if (err instanceof SyntaxError) {
|
|
57
59
|
return jsonMalformedBody(c);
|
|
58
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpError.js","sourceRoot":"","sources":["../../src/lib/httpError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAejE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAiB,CAAC;IACnD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,GAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnG,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,OAAO,KAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AACpE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY,EAAE,MAAc;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAa,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,UAAU;IACV,WAAW;IACX,eAAe;CAChB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACpD,MAAM,IAAI,GAA8C,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,IACE,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAC/B,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,EACtF,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAiB,EACjB,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC;IAEnC,OAAO,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;QAC9D,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,GAAY;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,SAAS,CACd,CAAC,EACD,KAAK,CAAC,IAAI,IAAI,gBAAgB,EAC9B,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,EACrC,MAA8B,CAC/B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"httpError.js","sourceRoot":"","sources":["../../src/lib/httpError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAejE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAiB,CAAC;IACnD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,GAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnG,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,OAAO,KAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AACpE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY,EAAE,MAAc;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAa,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,UAAU;IACV,WAAW;IACX,eAAe;CAChB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACpD,MAAM,IAAI,GAA8C,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,IACE,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAC/B,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,EACtF,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAiB,EACjB,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC;IAEnC,OAAO,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;QAC9D,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,GAAY;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,IAAI,KAAK,mCAAmC;QAAE,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACtF,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,SAAS,CACd,CAAC,EACD,KAAK,CAAC,IAAI,IAAI,gBAAgB,EAC9B,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,EACrC,MAA8B,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -53,7 +53,7 @@ export declare function jsonOk<T>(c: Context, data: T, status?: ContentfulStatus
|
|
|
53
53
|
}[K], bigint | readonly bigint[]> | undefined : import("hono/utils/types").JSONParsed<{
|
|
54
54
|
ok: true;
|
|
55
55
|
data: T;
|
|
56
|
-
}[K], bigint | readonly bigint[]>; },
|
|
56
|
+
}[K], bigint | readonly bigint[]>; }, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
57
57
|
export declare function jsonSuccess(c: Context): Response & import("hono").TypedResponse<{
|
|
58
58
|
ok: true;
|
|
59
59
|
data: null;
|
|
@@ -79,7 +79,7 @@ export declare function jsonCreated<T>(c: Context, data: T): Response & import("
|
|
|
79
79
|
}[K], bigint | readonly bigint[]> | undefined : import("hono/utils/types").JSONParsed<{
|
|
80
80
|
ok: true;
|
|
81
81
|
data: T;
|
|
82
|
-
}[K], bigint | readonly bigint[]>; },
|
|
82
|
+
}[K], bigint | readonly bigint[]>; }, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
83
83
|
export declare function jsonNoContent(c: Context): Response & import("hono").TypedResponse<null, 204, "body">;
|
|
84
84
|
export declare function jsonError(c: Context, code: string, message: string, status: ContentfulStatusCode): Response & import("hono").TypedResponse<{
|
|
85
85
|
ok: false;
|
|
@@ -87,28 +87,28 @@ export declare function jsonError(c: Context, code: string, message: string, sta
|
|
|
87
87
|
code: string;
|
|
88
88
|
message: string;
|
|
89
89
|
};
|
|
90
|
-
},
|
|
90
|
+
}, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
91
91
|
export declare function jsonInvalidRequest(c: Context, message: string): Response & import("hono").TypedResponse<{
|
|
92
92
|
ok: false;
|
|
93
93
|
error: {
|
|
94
94
|
code: string;
|
|
95
95
|
message: string;
|
|
96
96
|
};
|
|
97
|
-
},
|
|
97
|
+
}, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
98
98
|
export declare function jsonNotFound(c: Context, code: string, message: string): Response & import("hono").TypedResponse<{
|
|
99
99
|
ok: false;
|
|
100
100
|
error: {
|
|
101
101
|
code: string;
|
|
102
102
|
message: string;
|
|
103
103
|
};
|
|
104
|
-
},
|
|
104
|
+
}, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
105
105
|
export declare function jsonMalformedBody(c: Context): Response & import("hono").TypedResponse<{
|
|
106
106
|
ok: false;
|
|
107
107
|
error: {
|
|
108
108
|
code: string;
|
|
109
109
|
message: string;
|
|
110
110
|
};
|
|
111
|
-
},
|
|
111
|
+
}, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
112
112
|
export declare function parseJsonBody<T>(c: Context, schema: SafeParseSchema<T>, invalidMessage: InvalidRequestMessage, options?: ParseJsonBodyOptions): Promise<ParsedRequestValue<T>>;
|
|
113
113
|
export declare function parseOptionalJsonBody<T>(c: Context, schema: SafeParseSchema<T>, invalidMessage: InvalidRequestMessage, options?: ParseJsonBodyOptions): Promise<ParsedRequestValue<T>>;
|
|
114
114
|
export declare function parseQueryParams<T>(c: Context, schema: SafeParseSchema<T>, invalidMessage: InvalidRequestMessage): ParsedRequestValue<T>;
|
|
@@ -6,6 +6,7 @@ export interface IdempotentResult<T> {
|
|
|
6
6
|
replayed: boolean;
|
|
7
7
|
}
|
|
8
8
|
type DeliveryInternals = {
|
|
9
|
+
_notifications_durable?: boolean;
|
|
9
10
|
_delivery?: unknown;
|
|
10
11
|
_deliveries?: unknown;
|
|
11
12
|
_delivery_rejections?: unknown;
|
|
@@ -22,6 +23,9 @@ interface RunIdempotentOptions<T> {
|
|
|
22
23
|
ttlSeconds?: number;
|
|
23
24
|
kv?: KeyValueStore;
|
|
24
25
|
requireKv?: boolean;
|
|
26
|
+
/** Fail closed on an unreadable prior record, without failing a committed write on KV completion loss. */
|
|
27
|
+
requireKvRead?: boolean;
|
|
28
|
+
requireFingerprint?: boolean;
|
|
25
29
|
operation: () => Promise<T>;
|
|
26
30
|
/**
|
|
27
31
|
* Fresh-result hook that must complete before the idempotency success record
|
|
@@ -30,34 +34,35 @@ interface RunIdempotentOptions<T> {
|
|
|
30
34
|
*/
|
|
31
35
|
afterOperation?: (data: T) => Promise<void>;
|
|
32
36
|
}
|
|
37
|
+
export declare function buildIdempotencyStorageKey(workspaceId: string, actorId: string, scope: string, key: string): Promise<string>;
|
|
33
38
|
export declare function parseIdempotencyKey(headerValue: string | undefined): {
|
|
34
39
|
key?: string;
|
|
35
40
|
error?: string;
|
|
36
41
|
};
|
|
37
42
|
export declare function applyIdempotencyReplayHeader<T>(c: Context, result: IdempotentResult<T>): void;
|
|
38
|
-
export declare function stripDeliveryInternals<T extends object>(data: T): Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
39
|
-
export declare function jsonIdempotentOk<T extends object>(c: Context, result: IdempotentResult<T>): Response & import("hono").TypedResponse<true | Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery"> extends bigint | readonly bigint[] ? never : { [K in keyof {
|
|
43
|
+
export declare function stripDeliveryInternals<T extends object>(data: T): Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
44
|
+
export declare function jsonIdempotentOk<T extends object>(c: Context, result: IdempotentResult<T>): Response & import("hono").TypedResponse<true | Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery"> extends bigint | readonly bigint[] ? never : { [K in keyof {
|
|
40
45
|
ok: true;
|
|
41
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
46
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
42
47
|
} as ({
|
|
43
48
|
ok: true;
|
|
44
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
49
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
45
50
|
}[K] extends infer T_1 ? T_1 extends {
|
|
46
51
|
ok: true;
|
|
47
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
52
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
48
53
|
}[K] ? T_1 extends import("hono/utils/types").InvalidJSONValue ? true : false : never : never) extends true ? never : K]: boolean extends ({
|
|
49
54
|
ok: true;
|
|
50
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
55
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
51
56
|
}[K] extends infer T_2 ? T_2 extends {
|
|
52
57
|
ok: true;
|
|
53
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
58
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
54
59
|
}[K] ? T_2 extends import("hono/utils/types").InvalidJSONValue ? true : false : never : never) ? import("hono/utils/types").JSONParsed<{
|
|
55
60
|
ok: true;
|
|
56
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
61
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
57
62
|
}[K], bigint | readonly bigint[]> | undefined : import("hono/utils/types").JSONParsed<{
|
|
58
63
|
ok: true;
|
|
59
|
-
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_delivery">;
|
|
60
|
-
}[K], bigint | readonly bigint[]>; },
|
|
64
|
+
data: Omit<T & DeliveryInternals, "_deliveries" | "_delivery_rejections" | "_notifications_durable" | "_delivery">;
|
|
65
|
+
}[K], bigint | readonly bigint[]>; }, -1 | 100 | 102 | 103 | 200 | 201 | 202 | 203 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511, "json">;
|
|
61
66
|
export declare function runIdempotent<T>(options: RunIdempotentOptions<T>): Promise<IdempotentResult<T>>;
|
|
62
67
|
export {};
|
|
63
68
|
//# sourceMappingURL=idempotency.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAcpD,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,iBAAiB,GAAG;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,UAAU,oBAAoB,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAcpD,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,iBAAiB,GAAG;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,UAAU,oBAAoB,CAAC,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0GAA0G;IAC1G,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAgBD,wBAAsB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlI;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBrG;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAItF;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,gHAS/D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;oZAGzF;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuJ9B"}
|
|
@@ -11,7 +11,7 @@ function idempotencyUnavailableError(cause) {
|
|
|
11
11
|
Object.assign(err, { code: 'idempotency_unavailable', status: 503, cause });
|
|
12
12
|
return err;
|
|
13
13
|
}
|
|
14
|
-
async function
|
|
14
|
+
export async function buildIdempotencyStorageKey(workspaceId, actorId, scope, key) {
|
|
15
15
|
const [digest, scopeDigest] = await Promise.all([
|
|
16
16
|
sha256Hex(key),
|
|
17
17
|
sha256Hex(scope),
|
|
@@ -45,7 +45,7 @@ export function applyIdempotencyReplayHeader(c, result) {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
export function stripDeliveryInternals(data) {
|
|
48
|
-
const { _delivery: _dropDelivery, _deliveries: _dropDeliveries, _delivery_rejections: _dropRejections, ...publicData } = data;
|
|
48
|
+
const { _notifications_durable: _dropNotifications, _delivery: _dropDelivery, _deliveries: _dropDeliveries, _delivery_rejections: _dropRejections, ...publicData } = data;
|
|
49
49
|
return publicData;
|
|
50
50
|
}
|
|
51
51
|
export function jsonIdempotentOk(c, result) {
|
|
@@ -53,7 +53,7 @@ export function jsonIdempotentOk(c, result) {
|
|
|
53
53
|
return jsonOk(c, stripDeliveryInternals(result.data), result.status);
|
|
54
54
|
}
|
|
55
55
|
export async function runIdempotent(options) {
|
|
56
|
-
const { workspaceId, actorId, scope, key, fingerprint, compatibleFingerprints = [], operation, afterOperation, status = 201, ttlSeconds = IDEMPOTENCY_TTL_SECONDS, kv, requireKv = false, } = options;
|
|
56
|
+
const { workspaceId, actorId, scope, key, fingerprint, compatibleFingerprints = [], operation, afterOperation, status = 201, ttlSeconds = IDEMPOTENCY_TTL_SECONDS, kv, requireKv = false, requireKvRead = false, requireFingerprint = false, } = options;
|
|
57
57
|
if (!key) {
|
|
58
58
|
if (requireKv) {
|
|
59
59
|
const err = new Error('Idempotency key is required');
|
|
@@ -69,17 +69,17 @@ export async function runIdempotent(options) {
|
|
|
69
69
|
let kvKey = null;
|
|
70
70
|
let lockKey = null;
|
|
71
71
|
let lockAcquired = false;
|
|
72
|
-
if (!kvStore && requireKv) {
|
|
72
|
+
if (!kvStore && (requireKv || requireKvRead)) {
|
|
73
73
|
throw idempotencyUnavailableError();
|
|
74
74
|
}
|
|
75
75
|
if (kvStore) {
|
|
76
|
-
kvKey = await
|
|
76
|
+
kvKey = await buildIdempotencyStorageKey(workspaceId, actorId, scope, key);
|
|
77
77
|
lockKey = `${kvKey}:lock`;
|
|
78
78
|
try {
|
|
79
79
|
const existingRaw = await kvStore.get(kvKey);
|
|
80
80
|
if (existingRaw) {
|
|
81
81
|
const parsed = JSON.parse(existingRaw);
|
|
82
|
-
if (!fingerprintMatches(parsed.fingerprint, fingerprint, compatibleFingerprints)) {
|
|
82
|
+
if ((requireFingerprint && !parsed.fingerprint) || !fingerprintMatches(parsed.fingerprint, fingerprint, compatibleFingerprints)) {
|
|
83
83
|
const err = new Error('Idempotency-Key was reused with a different request payload');
|
|
84
84
|
Object.assign(err, { code: 'idempotency_key_reused', status: 409 });
|
|
85
85
|
throw err;
|
|
@@ -98,7 +98,7 @@ export async function runIdempotent(options) {
|
|
|
98
98
|
const concurrentRaw = await kvStore.get(kvKey);
|
|
99
99
|
if (concurrentRaw) {
|
|
100
100
|
const parsed = JSON.parse(concurrentRaw);
|
|
101
|
-
if (!fingerprintMatches(parsed.fingerprint, fingerprint, compatibleFingerprints)) {
|
|
101
|
+
if ((requireFingerprint && !parsed.fingerprint) || !fingerprintMatches(parsed.fingerprint, fingerprint, compatibleFingerprints)) {
|
|
102
102
|
const err = new Error('Idempotency-Key was reused with a different request payload');
|
|
103
103
|
Object.assign(err, { code: 'idempotency_key_reused', status: 409 });
|
|
104
104
|
throw err;
|
|
@@ -121,7 +121,7 @@ export async function runIdempotent(options) {
|
|
|
121
121
|
if (recheckRaw) {
|
|
122
122
|
await kvStore.delete(lockKey);
|
|
123
123
|
const parsed = JSON.parse(recheckRaw);
|
|
124
|
-
if (!fingerprintMatches(parsed.fingerprint, fingerprint, compatibleFingerprints)) {
|
|
124
|
+
if ((requireFingerprint && !parsed.fingerprint) || !fingerprintMatches(parsed.fingerprint, fingerprint, compatibleFingerprints)) {
|
|
125
125
|
const err = new Error('Idempotency-Key was reused with a different request payload');
|
|
126
126
|
Object.assign(err, { code: 'idempotency_key_reused', status: 409 });
|
|
127
127
|
throw err;
|
|
@@ -137,7 +137,7 @@ export async function runIdempotent(options) {
|
|
|
137
137
|
if (err instanceof Error && ['idempotency_key_reused', 'idempotency_in_progress'].includes(err.code ?? '')) {
|
|
138
138
|
throw err;
|
|
139
139
|
}
|
|
140
|
-
if (requireKv) {
|
|
140
|
+
if (requireKv || requireKvRead) {
|
|
141
141
|
throw idempotencyUnavailableError(err);
|
|
142
142
|
}
|
|
143
143
|
// KV unavailable or decode failure: proceed without idempotency.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7C,MAAM,4BAA4B,GAAG,EAAE,CAAC;AACxC,MAAM,0BAA0B,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/database.d.ts
CHANGED
|
@@ -80,27 +80,11 @@ export interface BatchCapability {
|
|
|
80
80
|
* paths that must also be atomic under D1.
|
|
81
81
|
*/
|
|
82
82
|
export declare function runAtomic<T>(db: EngineDb, fn: (tx: EngineDb) => Promise<T>): Promise<T>;
|
|
83
|
-
/**
|
|
84
|
-
* Execute write statements atomically when the handle supports it.
|
|
85
|
-
*
|
|
86
|
-
* Resolution order:
|
|
87
|
-
* 1. {@link TransactionCapability} (Node better-sqlite3) — statements are
|
|
88
|
-
* built from the transaction handle and run sequentially inside one
|
|
89
|
-
* transaction, so partial results roll back.
|
|
90
|
-
* 2. {@link BatchCapability} (Cloudflare D1 via drizzle's native `batch`) —
|
|
91
|
-
* statements are built from the original handle and run as one atomic
|
|
92
|
-
* batch.
|
|
93
|
-
* 3. Neither — statements run sequentially with no rollback, the engine's
|
|
94
|
-
* historical behavior for bare handles, unless `requireAtomic` is set.
|
|
95
|
-
*
|
|
96
|
-
* Returns the per-statement results in order, so callers can recover
|
|
97
|
-
* `.returning()` rows by index. Statements must not depend on each other's
|
|
98
|
-
* DB-returned values (IDs are app-generated snowflakes), because under a batch
|
|
99
|
-
* nothing is visible until every statement has executed.
|
|
100
|
-
*/
|
|
83
|
+
/** Translate a workspace guard failure after the atomic adapter rolls back. */
|
|
101
84
|
export declare function runAtomicWrites(db: EngineDb, input: AtomicWriteInput, options?: RunAtomicWritesOptions): Promise<unknown[]>;
|
|
102
|
-
/** Normalize
|
|
85
|
+
/** Normalize atomic admission sentinels across SQLite adapters (D1 wraps the message).
|
|
103
86
|
* Keep driver-specific error decoding at this port boundary; engine callers use a stable kind.
|
|
104
87
|
*/
|
|
105
|
-
export
|
|
88
|
+
export type DatabaseConstraintKind = 'mailbox_capacity' | 'workspace_delivery_capacity' | 'a2a_registration_changed';
|
|
89
|
+
export declare function databaseConstraintKind(error: unknown): DatabaseConstraintKind | undefined;
|
|
106
90
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AAkBH,MAAM,MAAM,QAAQ,CAAC,UAAU,GAAG,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,MAAM,CAAC,CAAC;AAEpG;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAClE;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,SAAS,WAAW,EAAE,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,SAAS,WAAW,EAAE,GAAG,kBAAkB,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACrC,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACjF;AAcD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGvF;AAoDD,+EAA+E;AAC/E,wBAAsB,eAAe,CACnC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE,sBAA2B,GAC1E,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG,6BAA6B,GAAG,0BAA0B,CAAC;AAErH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAkBzF"}
|
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":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAqGtF,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,KAAK,UAAU,mBAAmB,CAChC,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,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAY,EAAE,KAAuB,EAAE,UAAkC,EAAE;IAE3E,IAAI,CAAC;QAAC,OAAO,MAAM,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAC7D,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,sBAAsB,CAAC,KAAK,CAAC,KAAK,6BAA6B,EAAE,CAAC;YACpE,MAAM,IAAI,8BAA8B,CAAC,2DAA2D,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,KAA+C,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,8DAA8D;QAC9D,0EAA0E;QAC1E,IAAI,6EAA6E,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,0BAA0B,CAAC;QACnI,uEAAuE;QACvE,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,uDAAuD,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,kBAAkB,CAAC;QACrG,IAAI,iDAAiD,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,6BAA6B,CAAC;QAC1G,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
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":"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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 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceDelivery.js","sourceRoot":"","sources":["../../src/ports/workspaceDelivery.ts"],"names":[],"mappings":""}
|