@relaycast/engine 8.16.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/adapters/node/event-queue.d.ts +7 -2
  2. package/dist/adapters/node/event-queue.d.ts.map +1 -1
  3. package/dist/adapters/node/event-queue.js +19 -4
  4. package/dist/adapters/node/event-queue.js.map +1 -1
  5. package/dist/adapters/node/index.d.ts.map +1 -1
  6. package/dist/adapters/node/index.js +18 -2
  7. package/dist/adapters/node/index.js.map +1 -1
  8. package/dist/adapters/node/ssrf-fetch.d.ts +12 -0
  9. package/dist/adapters/node/ssrf-fetch.d.ts.map +1 -0
  10. package/dist/adapters/node/ssrf-fetch.js +81 -0
  11. package/dist/adapters/node/ssrf-fetch.js.map +1 -0
  12. package/dist/auth/index.d.ts +1 -0
  13. package/dist/auth/index.d.ts.map +1 -1
  14. package/dist/auth/index.js +16 -4
  15. package/dist/auth/index.js.map +1 -1
  16. package/dist/auth/workspaceExpiry.d.ts +28 -0
  17. package/dist/auth/workspaceExpiry.d.ts.map +1 -0
  18. package/dist/auth/workspaceExpiry.js +39 -0
  19. package/dist/auth/workspaceExpiry.js.map +1 -0
  20. package/dist/db/migrations/0062_direct_dm_idempotency.sql +20 -0
  21. package/dist/db/migrations/0063_node_rotation_recovery.sql +13 -0
  22. package/dist/db/migrations/0064_action_invocations_status_dispatched_index.sql +9 -0
  23. package/dist/db/migrations/0065_action_invocations_task_deadline_any_status.sql +10 -0
  24. package/dist/db/migrations/0066_action_invocations_status_sweep_ranges.sql +15 -0
  25. package/dist/db/migrations/0067_webhook_delivery_reliability.sql +37 -0
  26. package/dist/db/schema.d.ts +425 -0
  27. package/dist/db/schema.d.ts.map +1 -1
  28. package/dist/db/schema.js +68 -1
  29. package/dist/db/schema.js.map +1 -1
  30. package/dist/engine/a2aEgress.d.ts +10 -0
  31. package/dist/engine/a2aEgress.d.ts.map +1 -1
  32. package/dist/engine/a2aEgress.js +35 -3
  33. package/dist/engine/a2aEgress.js.map +1 -1
  34. package/dist/engine/attachments.d.ts.map +1 -1
  35. package/dist/engine/attachments.js +5 -3
  36. package/dist/engine/attachments.js.map +1 -1
  37. package/dist/engine/dm.d.ts +5 -1
  38. package/dist/engine/dm.d.ts.map +1 -1
  39. package/dist/engine/dm.js +139 -20
  40. package/dist/engine/dm.js.map +1 -1
  41. package/dist/engine/dmAll.d.ts +6 -0
  42. package/dist/engine/dmAll.d.ts.map +1 -1
  43. package/dist/engine/dmAll.js +51 -2
  44. package/dist/engine/dmAll.js.map +1 -1
  45. package/dist/engine/eventDelivery.d.ts +50 -1
  46. package/dist/engine/eventDelivery.d.ts.map +1 -1
  47. package/dist/engine/eventDelivery.js +435 -75
  48. package/dist/engine/eventDelivery.js.map +1 -1
  49. package/dist/engine/eventDispatch.d.ts.map +1 -1
  50. package/dist/engine/eventDispatch.js +2 -0
  51. package/dist/engine/eventDispatch.js.map +1 -1
  52. package/dist/engine/eventQueue.d.ts +3 -2
  53. package/dist/engine/eventQueue.d.ts.map +1 -1
  54. package/dist/engine/eventQueue.js +9 -4
  55. package/dist/engine/eventQueue.js.map +1 -1
  56. package/dist/engine/eventSubscription.d.ts +5 -0
  57. package/dist/engine/eventSubscription.d.ts.map +1 -1
  58. package/dist/engine/eventSubscription.js +4 -0
  59. package/dist/engine/eventSubscription.js.map +1 -1
  60. package/dist/engine/httpPushDispatch.d.ts +1 -0
  61. package/dist/engine/httpPushDispatch.d.ts.map +1 -1
  62. package/dist/engine/httpPushDispatch.js +21 -8
  63. package/dist/engine/httpPushDispatch.js.map +1 -1
  64. package/dist/engine/inboundWebhook.d.ts +4 -0
  65. package/dist/engine/inboundWebhook.d.ts.map +1 -1
  66. package/dist/engine/inboundWebhook.js +5 -0
  67. package/dist/engine/inboundWebhook.js.map +1 -1
  68. package/dist/engine/invocationCompletion.d.ts.map +1 -1
  69. package/dist/engine/invocationCompletion.js +2 -0
  70. package/dist/engine/invocationCompletion.js.map +1 -1
  71. package/dist/engine/messageMetadata.d.ts +4 -0
  72. package/dist/engine/messageMetadata.d.ts.map +1 -1
  73. package/dist/engine/messageMetadata.js +7 -1
  74. package/dist/engine/messageMetadata.js.map +1 -1
  75. package/dist/engine/node.d.ts +37 -7
  76. package/dist/engine/node.d.ts.map +1 -1
  77. package/dist/engine/node.js +107 -19
  78. package/dist/engine/node.js.map +1 -1
  79. package/dist/engine/nodeContext.d.ts +1 -0
  80. package/dist/engine/nodeContext.d.ts.map +1 -1
  81. package/dist/engine/nodeContext.js +1 -0
  82. package/dist/engine/nodeContext.js.map +1 -1
  83. package/dist/engine/nodeDeliver.d.ts +1 -0
  84. package/dist/engine/nodeDeliver.d.ts.map +1 -1
  85. package/dist/engine/nodeDeliver.js +1 -0
  86. package/dist/engine/nodeDeliver.js.map +1 -1
  87. package/dist/engine/sessionEvent.d.ts.map +1 -1
  88. package/dist/engine/sessionEvent.js +2 -0
  89. package/dist/engine/sessionEvent.js.map +1 -1
  90. package/dist/engine/workspace.d.ts +7 -0
  91. package/dist/engine/workspace.d.ts.map +1 -1
  92. package/dist/engine/workspace.js +11 -0
  93. package/dist/engine/workspace.js.map +1 -1
  94. package/dist/engine/wsAuth.d.ts +2 -1
  95. package/dist/engine/wsAuth.d.ts.map +1 -1
  96. package/dist/engine/wsAuth.js +27 -2
  97. package/dist/engine/wsAuth.js.map +1 -1
  98. package/dist/index.d.ts +4 -2
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +7 -2
  101. package/dist/index.js.map +1 -1
  102. package/dist/lib/serverTelemetry.d.ts +13 -2
  103. package/dist/lib/serverTelemetry.d.ts.map +1 -1
  104. package/dist/lib/serverTelemetry.js +4 -0
  105. package/dist/lib/serverTelemetry.js.map +1 -1
  106. package/dist/lib/ssrf.d.ts +16 -17
  107. package/dist/lib/ssrf.d.ts.map +1 -1
  108. package/dist/lib/ssrf.js +160 -46
  109. package/dist/lib/ssrf.js.map +1 -1
  110. package/dist/lib/standardWebhook.d.ts +15 -0
  111. package/dist/lib/standardWebhook.d.ts.map +1 -0
  112. package/dist/lib/standardWebhook.js +89 -0
  113. package/dist/lib/standardWebhook.js.map +1 -0
  114. package/dist/middleware/auth.d.ts.map +1 -1
  115. package/dist/middleware/auth.js +3 -2
  116. package/dist/middleware/auth.js.map +1 -1
  117. package/dist/middleware/idempotency.d.ts +15 -9
  118. package/dist/middleware/idempotency.d.ts.map +1 -1
  119. package/dist/middleware/idempotency.js +104 -58
  120. package/dist/middleware/idempotency.js.map +1 -1
  121. package/dist/ports/index.d.ts +6 -0
  122. package/dist/ports/index.d.ts.map +1 -1
  123. package/dist/routes/a2a.d.ts.map +1 -1
  124. package/dist/routes/a2a.js +15 -2
  125. package/dist/routes/a2a.js.map +1 -1
  126. package/dist/routes/action.js +1 -0
  127. package/dist/routes/action.js.map +1 -1
  128. package/dist/routes/agent.d.ts.map +1 -1
  129. package/dist/routes/agent.js +13 -2
  130. package/dist/routes/agent.js.map +1 -1
  131. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  132. package/dist/routes/deliveryRouting.js +3 -2
  133. package/dist/routes/deliveryRouting.js.map +1 -1
  134. package/dist/routes/dm.d.ts.map +1 -1
  135. package/dist/routes/dm.js +70 -42
  136. package/dist/routes/dm.js.map +1 -1
  137. package/dist/routes/eventSubscription.d.ts.map +1 -1
  138. package/dist/routes/eventSubscription.js +64 -3
  139. package/dist/routes/eventSubscription.js.map +1 -1
  140. package/dist/routes/node.d.ts.map +1 -1
  141. package/dist/routes/node.js +53 -4
  142. package/dist/routes/node.js.map +1 -1
  143. package/dist/routes/reaction.js +2 -0
  144. package/dist/routes/reaction.js.map +1 -1
  145. package/dist/routes/receipt.js +1 -0
  146. package/dist/routes/receipt.js.map +1 -1
  147. package/dist/routes/webhookOutbox.d.ts +1 -0
  148. package/dist/routes/webhookOutbox.d.ts.map +1 -1
  149. package/dist/routes/webhookOutbox.js +9 -5
  150. package/dist/routes/webhookOutbox.js.map +1 -1
  151. package/dist/routes/workspace.d.ts.map +1 -1
  152. package/dist/routes/workspace.js +41 -7
  153. package/dist/routes/workspace.js.map +1 -1
  154. package/package.json +4 -4
@@ -3,9 +3,12 @@ import { z } from 'zod';
3
3
  import { requireAuth } from '../middleware/auth.js';
4
4
  import { rateLimit } from '../middleware/rateLimit.js';
5
5
  import * as eventSubscriptionEngine from '../engine/eventSubscription.js';
6
+ import { listWebhookDeliveries, replayWebhookDelivery, } from '../engine/eventDelivery.js';
6
7
  import { emitServerEvent } from '../lib/serverTelemetry.js';
7
8
  import { errorResponse } from '../lib/httpError.js';
8
- import { jsonCreated, jsonNoContent, jsonNotFound, jsonOk, parseJsonBody, } from '../lib/httpResponse.js';
9
+ import { isValidStandardWebhookSecret } from '../lib/standardWebhook.js';
10
+ import { isSafeExternalUrl } from '../lib/ssrf.js';
11
+ import { jsonCreated, jsonError, jsonNoContent, jsonNotFound, jsonOk, parseJsonBody, } from '../lib/httpResponse.js';
9
12
  export const eventSubscriptionRoutes = new Hono();
10
13
  const headerNameSchema = z.string().regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/);
11
14
  const headerValueSchema = z.string().refine((value) => !/[\r\n]/.test(value), 'header values cannot contain CR/LF');
@@ -18,6 +21,16 @@ const createSubscriptionSchema = z.object({
18
21
  url: z.string().min(1),
19
22
  headers: z.record(headerNameSchema, headerValueSchema).optional(),
20
23
  secret: z.string().nullable().optional(),
24
+ signature_scheme: z.enum(['legacy', 'standard-webhooks']).default('legacy'),
25
+ }).superRefine((value, ctx) => {
26
+ if (value.signature_scheme === 'standard-webhooks'
27
+ && (!value.secret || !isValidStandardWebhookSecret(value.secret))) {
28
+ ctx.addIssue({
29
+ code: 'custom',
30
+ path: ['secret'],
31
+ message: 'standard-webhooks requires a whsec_ secret that decodes to 24-64 bytes',
32
+ });
33
+ }
21
34
  });
22
35
  // POST /v1/subscriptions - create an outbound event subscription
23
36
  eventSubscriptionRoutes.post('/subscriptions', requireAuth, rateLimit, async (c) => {
@@ -37,8 +50,12 @@ eventSubscriptionRoutes.post('/subscriptions', requireAuth, rateLimit, async (c)
37
50
  if (!parsed.ok) {
38
51
  return parsed.response;
39
52
  }
40
- const { events, filter, url, headers, secret } = parsed.data;
41
- const result = await eventSubscriptionEngine.createSubscription(db, workspace.id, { events, filter, url, headers, secret: secret ?? undefined });
53
+ const { events, filter, url, headers, secret, signature_scheme } = parsed.data;
54
+ const strict = c.get('engine').config?.environment !== 'test';
55
+ if (!isSafeExternalUrl(url, { strict, requireHttps: strict })) {
56
+ return jsonError(c, 'unsafe_subscription_url', 'Subscription URL must use HTTPS and resolve publicly', 400);
57
+ }
58
+ const result = await eventSubscriptionEngine.createSubscription(db, workspace.id, { events, filter, url, headers, secret: secret ?? undefined, signatureScheme: signature_scheme });
42
59
  emitServerEvent(c, workspace.id, 'relaycast_server_subscription_created', {
43
60
  subscription_id: result.id,
44
61
  event_count: result.events.length,
@@ -76,6 +93,50 @@ eventSubscriptionRoutes.get('/subscriptions/:id', requireAuth, rateLimit, async
76
93
  return errorResponse(c, err);
77
94
  }
78
95
  });
96
+ // GET /v1/subscriptions/:id/deliveries - inspect delivery health / dead letters
97
+ eventSubscriptionRoutes.get('/subscriptions/:id/deliveries', requireAuth, rateLimit, async (c) => {
98
+ try {
99
+ const status = z.enum(['pending', 'succeeded', 'failed', 'dead_letter'])
100
+ .optional()
101
+ .safeParse(c.req.query('status'));
102
+ const limit = z.coerce.number().int().min(1).max(100).default(50)
103
+ .safeParse(c.req.query('limit'));
104
+ if (!status.success || !limit.success) {
105
+ return jsonError(c, 'invalid_delivery_query', 'Invalid delivery status or limit', 400);
106
+ }
107
+ const db = c.get('db');
108
+ const workspace = c.get('workspace');
109
+ const subscription = await eventSubscriptionEngine.getSubscription(db, workspace.id, c.req.param('id'));
110
+ if (!subscription) {
111
+ return jsonNotFound(c, 'subscription_not_found', 'Subscription not found');
112
+ }
113
+ return jsonOk(c, await listWebhookDeliveries(db, workspace.id, subscription.id, {
114
+ status: status.data,
115
+ limit: limit.data,
116
+ }));
117
+ }
118
+ catch (err) {
119
+ return errorResponse(c, err);
120
+ }
121
+ });
122
+ // POST /v1/subscriptions/:id/deliveries/:delivery_id/replay - replay one dead letter
123
+ eventSubscriptionRoutes.post('/subscriptions/:id/deliveries/:delivery_id/replay', requireAuth, rateLimit, async (c) => {
124
+ try {
125
+ const workspace = c.get('workspace');
126
+ const result = await replayWebhookDelivery(c.get('db'), workspace.id, c.req.param('id'), c.req.param('delivery_id'));
127
+ if (result.kind === 'not_found') {
128
+ return jsonNotFound(c, 'webhook_delivery_not_found', 'Webhook delivery not found');
129
+ }
130
+ if (result.kind === 'not_replayable') {
131
+ return jsonError(c, 'webhook_delivery_not_replayable', `Webhook delivery in ${result.status} state cannot be replayed`, 409);
132
+ }
133
+ await c.get('engine').webhookQueue.send(result.event);
134
+ return jsonOk(c, { id: c.req.param('delivery_id'), status: 'pending' });
135
+ }
136
+ catch (err) {
137
+ return errorResponse(c, err);
138
+ }
139
+ });
79
140
  // DELETE /v1/subscriptions/:id - delete a subscription
80
141
  eventSubscriptionRoutes.delete('/subscriptions/:id', requireAuth, rateLimit, async (c) => {
81
142
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"eventSubscription.js","sourceRoot":"","sources":["../../src/routes/eventSubscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventSubscription.js","sourceRoot":"","sources":["../../src/routes/eventSubscription.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/routes/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AA4BxC,eAAO,MAAM,UAAU,qDAAqB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/routes/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAgCxC,eAAO,MAAM,UAAU,qDAAqB,CAAC"}
@@ -3,8 +3,11 @@ import { z } from 'zod';
3
3
  import { FleetNodeTagSchema } from '@relaycast/types';
4
4
  import { requireAuth, requireWorkspaceRead, requireWorkspaceKey } from '../middleware/auth.js';
5
5
  import { rateLimit } from '../middleware/rateLimit.js';
6
+ import { parseIdempotencyKey } from '../middleware/idempotency.js';
6
7
  import { asCodedError, errorResponse } from '../lib/httpError.js';
7
8
  import { isSafeExternalUrl } from '../lib/ssrf.js';
9
+ import { sha256Hex } from '../lib/crypto.js';
10
+ import { isValidStandardWebhookSecret } from '../lib/standardWebhook.js';
8
11
  import { jsonCreated, jsonError, jsonNotFound, jsonNoContent, jsonOk, parseJsonBody, parseOptionalJsonBody, } from '../lib/httpResponse.js';
9
12
  import * as nodeEngine from '../engine/node.js';
10
13
  import { serializeNodeOp, serializeMachineEnroll } from '../engine/nodeLock.js';
@@ -14,6 +17,7 @@ import { fanoutToWorkspace } from './fanout.js';
14
17
  import { runInBackground } from './background.js';
15
18
  import { sendWebhookEvent } from './webhookOutbox.js';
16
19
  import { emitServerEvent } from '../lib/serverTelemetry.js';
20
+ import { canonicalJson } from '../engine/messageMetadata.js';
17
21
  import { getObserverTokenFromContext, normalizeObserverFilters, observerAllowsAgent, } from '../engine/observerToken.js';
18
22
  export const nodeRoutes = new Hono();
19
23
  const nodeKindSchema = z.enum(['ws', 'http_push', 'poll']);
@@ -33,6 +37,7 @@ const deliveryAuthSchema = z.discriminatedUnion('type', [
33
37
  signed_payload: z.enum(['body', 'timestamp.body']).default('timestamp.body'),
34
38
  encoding: z.literal('hex').default('hex'),
35
39
  prefix: z.string().default('sha256='),
40
+ signature_scheme: z.literal('standard-webhooks').optional(),
36
41
  }),
37
42
  ]);
38
43
  const httpDeliverySchema = z.object({
@@ -43,6 +48,16 @@ const httpDeliverySchema = z.object({
43
48
  // (EngineConfig.httpPushProxy). `url` stays the real destination; the engine
44
49
  // forwards through the proxy at dispatch time. See dispatchHttpPush.
45
50
  use_proxy: z.boolean().optional(),
51
+ }).superRefine((delivery, ctx) => {
52
+ if (delivery.auth.type === 'hmac_sha256'
53
+ && delivery.auth.signature_scheme === 'standard-webhooks'
54
+ && !isValidStandardWebhookSecret(delivery.auth.secret)) {
55
+ ctx.addIssue({
56
+ code: 'custom',
57
+ path: ['auth', 'secret'],
58
+ message: 'standard-webhooks requires a whsec_ secret that decodes to 24-64 bytes',
59
+ });
60
+ }
46
61
  });
47
62
  const createNodeSchema = z.object({
48
63
  node_id: z.string().min(1).optional(),
@@ -92,7 +107,8 @@ function observerAgentIdsFilter(observer) {
92
107
  return undefined;
93
108
  return normalizeObserverFilters(observer.filters).agent_ids;
94
109
  }
95
- // POST /v1/nodes - enroll or rotate a node token (workspace-key only)
110
+ // POST /v1/nodes - workspace-key enrollment; established rows also require
111
+ // proof of the current node token.
96
112
  nodeRoutes.post('/nodes', requireWorkspaceKey, rateLimit, async (c) => {
97
113
  try {
98
114
  const parsed = await parseJsonBody(c, createNodeSchema, 'invalid node body');
@@ -116,7 +132,21 @@ nodeRoutes.post('/nodes', requireWorkspaceKey, rateLimit, async (c) => {
116
132
  });
117
133
  async function enrollNode(c, data) {
118
134
  try {
119
- const existing = await nodeEngine.resolveNodeForEnroll(c.get('db'), c.get('workspace').id, data);
135
+ const currentNodeToken = c.req.header('X-Relaycast-Node-Token');
136
+ const { key: idempotencyKey, error: idempotencyError } = parseIdempotencyKey(c.req.header('Idempotency-Key'));
137
+ if (idempotencyError) {
138
+ return jsonError(c, 'invalid_idempotency_key', idempotencyError, 400);
139
+ }
140
+ if (idempotencyKey && !currentNodeToken) {
141
+ return jsonError(c, 'node_rotation_idempotency_requires_current_token', 'Node rotation Idempotency-Key requires X-Relaycast-Node-Token proof', 400);
142
+ }
143
+ if (currentNodeToken && idempotencyKey && idempotencyKey.length < 32) {
144
+ return jsonError(c, 'node_rotation_idempotency_key_too_weak', 'Node rotation Idempotency-Key must be at least 32 characters and generated with a CSPRNG', 400);
145
+ }
146
+ const expectedTokenHash = currentNodeToken
147
+ ? await c.get('engine').auth.hashToken(currentNodeToken)
148
+ : undefined;
149
+ const existing = await nodeEngine.resolveNodeForEnroll(c.get('db'), c.get('workspace').id, data, expectedTokenHash);
120
150
  const kind = data.kind ?? existing?.kind ?? 'ws';
121
151
  const role = data.role
122
152
  ?? existing?.role
@@ -133,19 +163,37 @@ async function enrollNode(c, data) {
133
163
  if (!url) {
134
164
  return jsonError(c, 'invalid_node_delivery', 'http_push nodes require delivery.url', 400);
135
165
  }
136
- if (!isSafeExternalUrl(url, { strict: strictExternalUrl(c) })) {
166
+ const strict = strictExternalUrl(c);
167
+ if (!isSafeExternalUrl(url, { strict, requireHttps: strict })) {
137
168
  return jsonError(c, 'unsafe_node_delivery_url', 'delivery.url is not allowed', 400);
138
169
  }
139
170
  }
140
171
  if (role === 'direct' && (data.max_agents ?? existing?.maxAgents ?? 1) !== 1) {
141
172
  return jsonError(c, 'direct_node_capacity_exceeded', 'direct nodes can bind at most one agent', 400);
142
173
  }
174
+ const rotationRecovery = existing && currentNodeToken && idempotencyKey
175
+ ? await (async () => {
176
+ const requestDigest = await sha256Hex(canonicalJson(data));
177
+ const replacementDigest = await sha256Hex(canonicalJson([
178
+ 'node-token-rotation-v1',
179
+ c.get('workspace').id,
180
+ currentNodeToken,
181
+ idempotencyKey,
182
+ requestDigest,
183
+ ]));
184
+ return {
185
+ replacementToken: `nt_live_${replacementDigest.slice(0, 48)}`,
186
+ idempotencyKeyHash: await sha256Hex(idempotencyKey),
187
+ requestDigest,
188
+ };
189
+ })()
190
+ : undefined;
143
191
  const result = await nodeEngine.createNodeToken(c.get('db'), c.get('workspace').id, {
144
192
  ...data,
145
193
  kind,
146
194
  role,
147
195
  delivery: delivery && !('success' in delivery) ? delivery : null,
148
- });
196
+ }, { expectedTokenHash, rotationRecovery });
149
197
  return jsonCreated(c, result);
150
198
  }
151
199
  catch (err) {
@@ -305,6 +353,7 @@ nodeRoutes.post('/nodes/:node/actions/:name/invoke', requireAuth, rateLimit, asy
305
353
  nodeConnections: c.get('engine').nodeConnections,
306
354
  environment: c.get('engine').config?.environment,
307
355
  httpPushProxy: c.get('engine').config?.httpPushProxy,
356
+ outboundWebhookFetch: c.get('engine').config?.outboundWebhookFetch,
308
357
  workspaceId: workspace.id,
309
358
  }, {
310
359
  agentIds: [agent.id],
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/routes/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/routes/node.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,7 @@ reactionRoutes.post('/messages/:id/reactions', requireAgentToken, rateLimit, asy
63
63
  nodeConnections: c.get('engine').nodeConnections,
64
64
  environment: c.get('engine').config?.environment,
65
65
  httpPushProxy: c.get('engine').config?.httpPushProxy,
66
+ outboundWebhookFetch: c.get('engine').config?.outboundWebhookFetch,
66
67
  workspaceId: workspace.id,
67
68
  }, {
68
69
  channelId: channel_id,
@@ -132,6 +133,7 @@ reactionRoutes.delete('/messages/:id/reactions/:emoji', requireAgentToken, rateL
132
133
  nodeConnections: c.get('engine').nodeConnections,
133
134
  environment: c.get('engine').config?.environment,
134
135
  httpPushProxy: c.get('engine').config?.httpPushProxy,
136
+ outboundWebhookFetch: c.get('engine').config?.outboundWebhookFetch,
135
137
  workspaceId: workspace.id,
136
138
  }, {
137
139
  channelId: row.channelId,
@@ -1 +1 @@
1
- {"version":3,"file":"reaction.js","sourceRoot":"","sources":["../../src/routes/reaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reaction.js","sourceRoot":"","sources":["../../src/routes/reaction.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ receiptRoutes.post('/messages/:id/read', requireAgentToken, rateLimit, async (c)
40
40
  nodeConnections: c.get('engine').nodeConnections,
41
41
  environment: c.get('engine').config?.environment,
42
42
  httpPushProxy: c.get('engine').config?.httpPushProxy,
43
+ outboundWebhookFetch: c.get('engine').config?.outboundWebhookFetch,
43
44
  workspaceId: workspace.id,
44
45
  }, {
45
46
  channelId: row.channelId,
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../src/routes/receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../src/routes/receipt.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,6 @@ import type { QueuedEvent } from '../ports/event-queue.js';
22
22
  * event degrades to the legacy fire-and-forget queue send (no `outboxId`) —
23
23
  * a webhook should never fail the mutation that triggered it.
24
24
  */
25
+ export declare function shouldEnqueueWebhookEvent(c: Context<AppEnv>, workspaceId: string, eventType: string): Promise<boolean>;
25
26
  export declare function sendWebhookEvent(c: Context<AppEnv>, event: QueuedEvent): Promise<void>;
26
27
  //# sourceMappingURL=webhookOutbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhookOutbox.d.ts","sourceRoot":"","sources":["../../src/routes/webhookOutbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5F"}
1
+ {"version":3,"file":"webhookOutbox.d.ts","sourceRoot":"","sources":["../../src/routes/webhookOutbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,yBAAyB,CAC7C,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5F"}
@@ -23,22 +23,26 @@ import { getRequestLogger, toErrorDetails } from '../lib/logger.js';
23
23
  * event degrades to the legacy fire-and-forget queue send (no `outboxId`) —
24
24
  * a webhook should never fail the mutation that triggered it.
25
25
  */
26
- export async function sendWebhookEvent(c, event) {
26
+ export async function shouldEnqueueWebhookEvent(c, workspaceId, eventType) {
27
27
  try {
28
28
  let subscribersExist = c.get('webhookSubscribersExist');
29
29
  if (subscribersExist === undefined) {
30
- subscribersExist = await hasActiveSubscriptions(c.get('db'), event.workspaceId);
30
+ subscribersExist = await hasActiveSubscriptions(c.get('db'), workspaceId);
31
31
  c.set('webhookSubscribersExist', subscribersExist);
32
32
  }
33
- if (!subscribersExist)
34
- return;
33
+ return subscribersExist;
35
34
  }
36
35
  catch (error) {
37
36
  // Fail open: a broken probe must not drop events for subscribed workspaces.
38
- getRequestLogger(c, 'webhook.outbox').warn(`subscription probe failed for ${event.type}`, {
37
+ getRequestLogger(c, 'webhook.outbox').warn(`subscription probe failed for ${eventType}`, {
39
38
  ...toErrorDetails(error),
40
39
  });
40
+ return true;
41
41
  }
42
+ }
43
+ export async function sendWebhookEvent(c, event) {
44
+ if (!await shouldEnqueueWebhookEvent(c, event.workspaceId, event.type))
45
+ return;
42
46
  let outboxId;
43
47
  try {
44
48
  outboxId = await enqueueEvent(c.get('db'), event.workspaceId, event.type, event.data);
@@ -1 +1 @@
1
- {"version":3,"file":"webhookOutbox.js","sourceRoot":"","sources":["../../src/routes/webhookOutbox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,CAAkB,EAAE,KAAkB;IAC3E,IAAI,CAAC;QACH,IAAI,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACxD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAChF,CAAC,CAAC,GAAG,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,gBAAgB;YAAE,OAAO;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4EAA4E;QAC5E,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,iCAAiC,KAAK,CAAC,IAAI,EAAE,EAAE;YACxF,GAAG,cAAc,CAAC,KAAK,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,IAAI,EAAE,EAAE;YACpF,GAAG,cAAc,CAAC,KAAK,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IACD,mEAAmE;IACnE,yEAAyE;IACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,eAAe,CACb,CAAC,EACD,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EACzD,SAAS,KAAK,CAAC,IAAI,EAAE,CACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"webhookOutbox.js","sourceRoot":"","sources":["../../src/routes/webhookOutbox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,CAAkB,EAClB,WAAmB,EACnB,SAAiB;IAEjB,IAAI,CAAC;QACH,IAAI,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACxD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;YAC1E,CAAC,CAAC,GAAG,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4EAA4E;QAC5E,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,iCAAiC,SAAS,EAAE,EAAE;YACvF,GAAG,cAAc,CAAC,KAAK,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,CAAkB,EAAE,KAAkB;IAC3E,IAAI,CAAC,MAAM,yBAAyB,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO;IAE/E,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,IAAI,EAAE,EAAE;YACpF,GAAG,cAAc,CAAC,KAAK,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IACD,mEAAmE;IACnE,yEAAyE;IACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,eAAe,CACb,CAAC,EACD,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EACzD,SAAS,KAAK,CAAC,IAAI,EAAE,CACtB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAyCxC,eAAO,MAAM,eAAe,qDAAqB,CAAC"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AA2CxC,eAAO,MAAM,eAAe,qDAAqB,CAAC"}
@@ -3,6 +3,7 @@ import { createMiddleware } from 'hono/factory';
3
3
  import { z } from 'zod';
4
4
  import { CreateWorkspaceRequestSchema, UpdateWorkspaceRequestSchema } from '@relaycast/types';
5
5
  import { requireAgentToken, requireWorkspaceKey, requireWorkspaceRead } from '../middleware/auth.js';
6
+ import { authenticateUnexpired } from '../auth/workspaceExpiry.js';
6
7
  import { parseIdempotencyKey } from '../middleware/idempotency.js';
7
8
  import { rateLimit } from '../middleware/rateLimit.js';
8
9
  import { RATE_LIMIT_WINDOW_MS, rateLimitWindow, rateLimitWindowResetAt, setRetryContract } from '../lib/throttle.js';
@@ -10,7 +11,7 @@ import * as workspaceEngine from '../engine/workspace.js';
10
11
  import * as activityEngine from '../engine/activity.js';
11
12
  import * as dmAllEngine from '../engine/dmAll.js';
12
13
  import * as tokenRotateEngine from '../engine/tokenRotate.js';
13
- import { filterObserverSearchResults, getObserverTokenFromContext, observerAllowsConversation, observerAllowsEvent, observerAllowsMessage, OBSERVER_SCOPES, } from '../engine/observerToken.js';
14
+ import { filterObserverSearchResults, getObserverTokenFromContext, observerAllowsConversation, observerAllowsEvent, observerAllowsMessage, normalizeObserverFilters, OBSERVER_SCOPES, } from '../engine/observerToken.js';
14
15
  import { listWorkspaceEvents, WORKSPACE_EVENT_LIST_DEFAULT_LIMIT, WORKSPACE_EVENT_LIST_MAX_LIMIT, } from '../engine/workspaceEvents.js';
15
16
  import { channels } from '../db/schema.js';
16
17
  import { and, eq, inArray } from 'drizzle-orm';
@@ -164,7 +165,7 @@ workspaceRoutes.post('/workspaces', async (c) => {
164
165
  ? ownerAuthorization.token
165
166
  : undefined;
166
167
  if (idempotencyKey && ownerApiKey) {
167
- const ownerAuth = await c.get('engine').auth.authenticate({ token: ownerApiKey, require: 'workspace', db });
168
+ const ownerAuth = await authenticateUnexpired(c.get('engine').auth, { token: ownerApiKey, require: 'workspace', db });
168
169
  if (!ownerAuth.ok) {
169
170
  return jsonError(c, ownerAuth.code, ownerAuth.message, ownerAuth.status);
170
171
  }
@@ -260,7 +261,11 @@ workspaceRoutes.get('/workspace', requireWorkspaceRead([...OBSERVER_SCOPES], { a
260
261
  }
261
262
  const observer = getObserverTokenFromContext(c);
262
263
  return jsonOk(c, observer
263
- ? { ...workspace, provenance: redactProvenanceForObserver(workspace.provenance) }
264
+ ? {
265
+ ...workspace,
266
+ observer_token_id: observer.id,
267
+ provenance: redactProvenanceForObserver(workspace.provenance),
268
+ }
264
269
  : workspace);
265
270
  }
266
271
  catch (err) {
@@ -405,9 +410,26 @@ workspaceRoutes.get('/dm/conversations/all', requireWorkspaceRead('dms:read', {
405
410
  const db = c.get('db');
406
411
  const workspace = c.get('workspace');
407
412
  const observer = getObserverTokenFromContext(c);
408
- const conversations = (await dmAllEngine.listAllDmConversations(db, workspace.id))
409
- .filter((conversation) => observerAllowsConversation(observer, conversation.id)
410
- && (!conversation.last_message || observerAllowsMessage(observer, conversation.last_message)));
413
+ const allowedConversations = (await dmAllEngine.listAllDmConversations(db, workspace.id))
414
+ .filter((conversation) => observerAllowsConversation(observer, conversation.id));
415
+ const filters = observer ? normalizeObserverFilters(observer.filters) : null;
416
+ const filtersMessages = Boolean(filters?.agent_ids?.length || filters?.created_after);
417
+ const filteredCounts = observer && filtersMessages
418
+ ? await dmAllEngine.countDmMessagesForWorkspaceConversations(db, workspace.id, allowedConversations.map((conversation) => conversation.id), { agentIds: filters?.agent_ids, createdAfter: filters?.created_after })
419
+ : null;
420
+ const conversations = allowedConversations.map((conversation) => {
421
+ const visibleLastMessage = conversation.last_message && !observerAllowsMessage(observer, conversation.last_message)
422
+ ? null
423
+ : conversation.last_message;
424
+ if (!filteredCounts) {
425
+ return { ...conversation, last_message: visibleLastMessage };
426
+ }
427
+ return {
428
+ ...conversation,
429
+ last_message: visibleLastMessage,
430
+ message_count: filteredCounts.get(conversation.id) ?? 0,
431
+ };
432
+ });
411
433
  return jsonOk(c, conversations);
412
434
  }
413
435
  catch (err) {
@@ -429,7 +451,19 @@ workspaceRoutes.get('/dm/conversations/:conversation_id/messages', requireWorksp
429
451
  }
430
452
  const { limit, before, after } = query.data;
431
453
  const msgs = await dmAllEngine.getDmMessagesForWorkspace(db, workspace.id, conversationId, { limit, before, after });
432
- return jsonOk(c, msgs.filter((message) => observerAllowsMessage(getObserverTokenFromContext(c), message)));
454
+ const visible = msgs.filter((message) => observerAllowsMessage(getObserverTokenFromContext(c), message));
455
+ if (c.req.query('page') === '1') {
456
+ const effectiveLimit = dmAllEngine.dmMessagePageLimit(limit);
457
+ return jsonOk(c, {
458
+ messages: visible,
459
+ // Advance over the raw page, not the filtered result. An observer's
460
+ // agent filter may hide every row in this page while older allowed
461
+ // rows still exist.
462
+ next_before: msgs.at(-1)?.id ?? null,
463
+ exhausted: msgs.length < effectiveLimit,
464
+ });
465
+ }
466
+ return jsonOk(c, visible);
433
467
  }
434
468
  catch (err) {
435
469
  return errorResponse(c, err);