@relaycast/engine 3.1.1 → 4.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 (166) hide show
  1. package/dist/adapters/node/event-queue.d.ts +10 -0
  2. package/dist/adapters/node/event-queue.d.ts.map +1 -1
  3. package/dist/adapters/node/event-queue.js +17 -0
  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 +10 -0
  7. package/dist/adapters/node/index.js.map +1 -1
  8. package/dist/adapters/node/realtime.d.ts +24 -2
  9. package/dist/adapters/node/realtime.d.ts.map +1 -1
  10. package/dist/adapters/node/realtime.js +178 -1
  11. package/dist/adapters/node/realtime.js.map +1 -1
  12. package/dist/bin/serve.js +18 -1
  13. package/dist/bin/serve.js.map +1 -1
  14. package/dist/db/migrations/0016_fleet_nodes.sql +189 -0
  15. package/dist/db/migrations/0017_spawn_reservation_and_retry_state.sql +5 -0
  16. package/dist/db/migrations/0018_spawn_reserved_at.sql +2 -0
  17. package/dist/db/migrations/0019_fleet_mailbox.sql +71 -0
  18. package/dist/db/migrations/0020_workspace_retention.sql +3 -0
  19. package/dist/db/schema.d.ts +1771 -911
  20. package/dist/db/schema.d.ts.map +1 -1
  21. package/dist/db/schema.js +77 -7
  22. package/dist/db/schema.js.map +1 -1
  23. package/dist/engine/action.d.ts +84 -10
  24. package/dist/engine/action.d.ts.map +1 -1
  25. package/dist/engine/action.js +523 -85
  26. package/dist/engine/action.js.map +1 -1
  27. package/dist/engine/agent.js +2 -2
  28. package/dist/engine/agent.js.map +1 -1
  29. package/dist/engine/delivery.d.ts +41 -6
  30. package/dist/engine/delivery.d.ts.map +1 -1
  31. package/dist/engine/delivery.js +316 -25
  32. package/dist/engine/delivery.js.map +1 -1
  33. package/dist/engine/deliveryWire.d.ts +34 -0
  34. package/dist/engine/deliveryWire.d.ts.map +1 -0
  35. package/dist/engine/deliveryWire.js +70 -0
  36. package/dist/engine/deliveryWire.js.map +1 -0
  37. package/dist/engine/deliveryWrites.d.ts +47 -0
  38. package/dist/engine/deliveryWrites.d.ts.map +1 -1
  39. package/dist/engine/deliveryWrites.js +155 -5
  40. package/dist/engine/deliveryWrites.js.map +1 -1
  41. package/dist/engine/dm.d.ts +4 -4
  42. package/dist/engine/dm.d.ts.map +1 -1
  43. package/dist/engine/dm.js +17 -7
  44. package/dist/engine/dm.js.map +1 -1
  45. package/dist/engine/eventQueue.d.ts.map +1 -1
  46. package/dist/engine/eventQueue.js +5 -0
  47. package/dist/engine/eventQueue.js.map +1 -1
  48. package/dist/engine/eventSubscription.d.ts +6 -0
  49. package/dist/engine/eventSubscription.d.ts.map +1 -1
  50. package/dist/engine/eventSubscription.js +13 -0
  51. package/dist/engine/eventSubscription.js.map +1 -1
  52. package/dist/engine/groupDm.d.ts +4 -0
  53. package/dist/engine/groupDm.d.ts.map +1 -1
  54. package/dist/engine/groupDm.js +16 -4
  55. package/dist/engine/groupDm.js.map +1 -1
  56. package/dist/engine/invocationCompletion.d.ts +13 -0
  57. package/dist/engine/invocationCompletion.d.ts.map +1 -0
  58. package/dist/engine/invocationCompletion.js +65 -0
  59. package/dist/engine/invocationCompletion.js.map +1 -0
  60. package/dist/engine/mailboxConfig.d.ts +9 -0
  61. package/dist/engine/mailboxConfig.d.ts.map +1 -0
  62. package/dist/engine/mailboxConfig.js +16 -0
  63. package/dist/engine/mailboxConfig.js.map +1 -0
  64. package/dist/engine/message.d.ts +4 -0
  65. package/dist/engine/message.d.ts.map +1 -1
  66. package/dist/engine/message.js +16 -4
  67. package/dist/engine/message.js.map +1 -1
  68. package/dist/engine/node.d.ts +201 -0
  69. package/dist/engine/node.d.ts.map +1 -0
  70. package/dist/engine/node.js +557 -0
  71. package/dist/engine/node.js.map +1 -0
  72. package/dist/engine/placement.d.ts +26 -0
  73. package/dist/engine/placement.d.ts.map +1 -0
  74. package/dist/engine/placement.js +242 -0
  75. package/dist/engine/placement.js.map +1 -0
  76. package/dist/engine/receipt.d.ts.map +1 -1
  77. package/dist/engine/receipt.js +5 -6
  78. package/dist/engine/receipt.js.map +1 -1
  79. package/dist/engine/retention.d.ts +65 -0
  80. package/dist/engine/retention.d.ts.map +1 -0
  81. package/dist/engine/retention.js +173 -0
  82. package/dist/engine/retention.js.map +1 -0
  83. package/dist/engine/snowflake.d.ts +11 -0
  84. package/dist/engine/snowflake.d.ts.map +1 -1
  85. package/dist/engine/snowflake.js +14 -0
  86. package/dist/engine/snowflake.js.map +1 -1
  87. package/dist/engine/thread.d.ts +4 -0
  88. package/dist/engine/thread.d.ts.map +1 -1
  89. package/dist/engine/thread.js +16 -4
  90. package/dist/engine/thread.js.map +1 -1
  91. package/dist/engine/trigger.d.ts +79 -0
  92. package/dist/engine/trigger.d.ts.map +1 -0
  93. package/dist/engine/trigger.js +151 -0
  94. package/dist/engine/trigger.js.map +1 -0
  95. package/dist/engine.d.ts.map +1 -1
  96. package/dist/engine.js +61 -2
  97. package/dist/engine.js.map +1 -1
  98. package/dist/entrypoints/node.d.ts.map +1 -1
  99. package/dist/entrypoints/node.js +36 -2
  100. package/dist/entrypoints/node.js.map +1 -1
  101. package/dist/env.d.ts +6 -0
  102. package/dist/env.d.ts.map +1 -1
  103. package/dist/index.d.ts +4 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +6 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/lib/fleetNodes.d.ts +9 -0
  108. package/dist/lib/fleetNodes.d.ts.map +1 -0
  109. package/dist/lib/fleetNodes.js +66 -0
  110. package/dist/lib/fleetNodes.js.map +1 -0
  111. package/dist/lib/origin.d.ts.map +1 -1
  112. package/dist/lib/origin.js +0 -5
  113. package/dist/lib/origin.js.map +1 -1
  114. package/dist/lib/serverTelemetry.d.ts.map +1 -1
  115. package/dist/lib/serverTelemetry.js +0 -1
  116. package/dist/lib/serverTelemetry.js.map +1 -1
  117. package/dist/middleware/fleetNodes.d.ts +10 -0
  118. package/dist/middleware/fleetNodes.d.ts.map +1 -0
  119. package/dist/middleware/fleetNodes.js +18 -0
  120. package/dist/middleware/fleetNodes.js.map +1 -0
  121. package/dist/ports/index.d.ts +24 -2
  122. package/dist/ports/index.d.ts.map +1 -1
  123. package/dist/ports/realtime.d.ts +34 -2
  124. package/dist/ports/realtime.d.ts.map +1 -1
  125. package/dist/ports/realtime.js +1 -1
  126. package/dist/routes/action.d.ts.map +1 -1
  127. package/dist/routes/action.js +21 -21
  128. package/dist/routes/action.js.map +1 -1
  129. package/dist/routes/delivery.d.ts.map +1 -1
  130. package/dist/routes/delivery.js +7 -2
  131. package/dist/routes/delivery.js.map +1 -1
  132. package/dist/routes/deliveryRouting.d.ts +10 -0
  133. package/dist/routes/deliveryRouting.d.ts.map +1 -0
  134. package/dist/routes/deliveryRouting.js +91 -0
  135. package/dist/routes/deliveryRouting.js.map +1 -0
  136. package/dist/routes/dm.d.ts.map +1 -1
  137. package/dist/routes/dm.js +14 -13
  138. package/dist/routes/dm.js.map +1 -1
  139. package/dist/routes/groupDm.d.ts.map +1 -1
  140. package/dist/routes/groupDm.js +14 -15
  141. package/dist/routes/groupDm.js.map +1 -1
  142. package/dist/routes/inbox.d.ts.map +1 -1
  143. package/dist/routes/inbox.js +7 -0
  144. package/dist/routes/inbox.js.map +1 -1
  145. package/dist/routes/message.d.ts.map +1 -1
  146. package/dist/routes/message.js +45 -23
  147. package/dist/routes/message.js.map +1 -1
  148. package/dist/routes/node.d.ts +4 -0
  149. package/dist/routes/node.d.ts.map +1 -0
  150. package/dist/routes/node.js +57 -0
  151. package/dist/routes/node.js.map +1 -0
  152. package/dist/routes/thread.d.ts.map +1 -1
  153. package/dist/routes/thread.js +15 -16
  154. package/dist/routes/thread.js.map +1 -1
  155. package/dist/routes/trigger.d.ts +4 -0
  156. package/dist/routes/trigger.d.ts.map +1 -0
  157. package/dist/routes/trigger.js +83 -0
  158. package/dist/routes/trigger.js.map +1 -0
  159. package/dist/routes/webhookOutbox.d.ts +13 -6
  160. package/dist/routes/webhookOutbox.d.ts.map +1 -1
  161. package/dist/routes/webhookOutbox.js +29 -6
  162. package/dist/routes/webhookOutbox.js.map +1 -1
  163. package/dist/routes/workspace.d.ts.map +1 -1
  164. package/dist/routes/workspace.js +90 -0
  165. package/dist/routes/workspace.js.map +1 -1
  166. package/package.json +3 -3
@@ -0,0 +1,57 @@
1
+ import { Hono } from 'hono';
2
+ import { z } from 'zod';
3
+ import { requireAuth, requireWorkspaceKey } from '../middleware/auth.js';
4
+ import { rateLimit } from '../middleware/rateLimit.js';
5
+ import { requireFleetNodes } from '../middleware/fleetNodes.js';
6
+ import { errorResponse } from '../lib/httpError.js';
7
+ import * as nodeEngine from '../engine/node.js';
8
+ export const nodeRoutes = new Hono();
9
+ const createNodeSchema = z.object({
10
+ node_id: z.string().min(1).optional(),
11
+ name: z.string().min(1),
12
+ capabilities: z.array(z.string().min(1)).optional(),
13
+ max_agents: z.number().int().nonnegative().optional(),
14
+ tags: z.array(z.string()).optional(),
15
+ version: z.string().optional(),
16
+ });
17
+ // POST /v1/nodes - enroll or rotate a node token (workspace-key only)
18
+ nodeRoutes.post('/nodes', requireWorkspaceKey, requireFleetNodes, rateLimit, async (c) => {
19
+ try {
20
+ const parsed = createNodeSchema.safeParse(await c.req.json());
21
+ if (!parsed.success) {
22
+ return c.json({ ok: false, error: { code: 'invalid_request', message: 'invalid node body' } }, 400);
23
+ }
24
+ const result = await nodeEngine.createNodeToken(c.get('db'), c.get('workspace').id, parsed.data);
25
+ return c.json({ ok: true, data: result }, 201);
26
+ }
27
+ catch (err) {
28
+ return errorResponse(c, err);
29
+ }
30
+ });
31
+ // GET /v1/nodes?capability=&name= - node roster
32
+ nodeRoutes.get('/nodes', requireAuth, requireFleetNodes, rateLimit, async (c) => {
33
+ try {
34
+ const result = await nodeEngine.listNodes(c.get('db'), c.get('workspace').id, {
35
+ capability: c.req.query('capability'),
36
+ name: c.req.query('name'),
37
+ });
38
+ return c.json({ ok: true, data: result });
39
+ }
40
+ catch (err) {
41
+ return errorResponse(c, err);
42
+ }
43
+ });
44
+ // GET /v1/nodes/:name - single node roster entry
45
+ nodeRoutes.get('/nodes/:name', requireAuth, requireFleetNodes, rateLimit, async (c) => {
46
+ try {
47
+ const result = await nodeEngine.getPublicNode(c.get('db'), c.get('workspace').id, c.req.param('name'));
48
+ if (!result) {
49
+ return c.json({ ok: false, error: { code: 'node_not_found', message: 'Node not found' } }, 404);
50
+ }
51
+ return c.json({ ok: true, data: result });
52
+ }
53
+ catch (err) {
54
+ return errorResponse(c, err);
55
+ }
56
+ });
57
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/routes/node.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../src/routes/thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWxC,eAAO,MAAM,YAAY,qDAAqB,CAAC"}
1
+ {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../src/routes/thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAcxC,eAAO,MAAM,YAAY,qDAAqB,CAAC"}
@@ -4,7 +4,10 @@ import { requireAuth } from '../middleware/auth.js';
4
4
  import { rateLimit } from '../middleware/rateLimit.js';
5
5
  import { parseIdempotencyKey, runIdempotent } from '../middleware/idempotency.js';
6
6
  import * as threadEngine from '../engine/thread.js';
7
+ import { resolveMailboxConfig } from '../engine/mailboxConfig.js';
7
8
  import { fanoutToChannel, fanoutToAgents, getDmParticipantAgentIds } from './fanout.js';
9
+ import { notifyDeliveryRejections, routeDeliveryOutcomes } from './deliveryRouting.js';
10
+ import { buildThreadReplyEventData } from '../engine/deliveryWire.js';
8
11
  import { runInBackground } from './background.js';
9
12
  import { sendWebhookEvent } from './webhookOutbox.js';
10
13
  import { emitServerEvent } from '../lib/serverTelemetry.js';
@@ -44,10 +47,11 @@ threadRoutes.post('/messages/:id/replies', requireAuth, rateLimit, async (c) =>
44
47
  }, 403);
45
48
  }
46
49
  const parentId = c.req.param('id');
47
- const toThreadReplyEventData = (data) => {
48
- const { _deliveries, ...publicReplyData } = data;
49
- return { ...publicReplyData, from_name: agent?.name };
50
- };
50
+ const mailbox = resolveMailboxConfig(c.get('engine').config, workspace.id);
51
+ const toThreadReplyEventData = (data) => buildThreadReplyEventData(data, {
52
+ channelName: data.channel_name ?? '',
53
+ fromName: agent?.name ?? 'unknown',
54
+ });
51
55
  const idempotent = await runIdempotent({
52
56
  workspaceId: workspace.id,
53
57
  actorId: agentId,
@@ -56,7 +60,7 @@ threadRoutes.post('/messages/:id/replies', requireAuth, rateLimit, async (c) =>
56
60
  status: 201,
57
61
  fingerprint: JSON.stringify({ parentId, text, blocks, data }),
58
62
  kv: c.get('engine').kv,
59
- operation: () => threadEngine.postReply(db, workspace.id, parentId, agentId, { text, blocks, data }),
63
+ operation: () => threadEngine.postReply(db, workspace.id, parentId, agentId, { text, blocks, data }, { mailbox }),
60
64
  afterOperation: async (data) => {
61
65
  await sendWebhookEvent(c, {
62
66
  type: 'thread.reply',
@@ -69,7 +73,7 @@ threadRoutes.post('/messages/:id/replies', requireAuth, rateLimit, async (c) =>
69
73
  c.header('Idempotency-Replayed', 'true');
70
74
  }
71
75
  if (!idempotent.replayed) {
72
- const { _deliveries, ...publicReplyData } = idempotent.data;
76
+ const { _deliveries, _delivery_rejections, ...publicReplyData } = idempotent.data;
73
77
  const eventData = toThreadReplyEventData(idempotent.data);
74
78
  if (publicReplyData.channel_id) {
75
79
  const channelId = publicReplyData.channel_id;
@@ -83,16 +87,11 @@ threadRoutes.post('/messages/:id/replies', requireAuth, rateLimit, async (c) =>
83
87
  }
84
88
  })(), 'fanout thread.reply');
85
89
  }
86
- // Emit delivery.accepted individually to each recipient's AgentDO
87
90
  if (_deliveries && _deliveries.length > 0) {
88
- for (const d of _deliveries) {
89
- runInBackground(c, fanoutToAgents(c, [d.agentId], 'delivery.accepted', {
90
- delivery_id: d.id,
91
- message_id: String(publicReplyData.id),
92
- channel_id: publicReplyData.channel_id ?? null,
93
- reason: 'thread-reply',
94
- }), 'fanout delivery.accepted');
95
- }
91
+ runInBackground(c, routeDeliveryOutcomes(c, _deliveries, 'thread.reply', eventData), 'route thread deliveries');
92
+ }
93
+ if (_delivery_rejections && _delivery_rejections.length > 0) {
94
+ runInBackground(c, notifyDeliveryRejections(c, agentId, _delivery_rejections), 'fanout delivery rejected');
96
95
  }
97
96
  emitServerEvent(c, workspace.id, 'relaycast_server_thread_reply_created', {
98
97
  message_id: publicReplyData.id,
@@ -100,7 +99,7 @@ threadRoutes.post('/messages/:id/replies', requireAuth, rateLimit, async (c) =>
100
99
  channel_id: publicReplyData.channel_id ?? null,
101
100
  });
102
101
  }
103
- const { _deliveries: _drop, ...responseData } = idempotent.data;
102
+ const { _deliveries: _dropDeliveries, _delivery_rejections: _dropRejections, ...responseData } = idempotent.data;
104
103
  return c.json({ ok: true, data: responseData }, idempotent.status);
105
104
  }
106
105
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../src/routes/thread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../src/routes/thread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Hono } from 'hono';
2
+ import type { AppEnv } from '../env.js';
3
+ export declare const triggerRoutes: Hono<AppEnv, import("hono/types").BlankSchema, "/">;
4
+ //# sourceMappingURL=trigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/routes/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC,eAAO,MAAM,aAAa,qDAAqB,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { Hono } from 'hono';
2
+ import { z } from 'zod';
3
+ import { requireAuth } from '../middleware/auth.js';
4
+ import { rateLimit } from '../middleware/rateLimit.js';
5
+ import { errorResponse } from '../lib/httpError.js';
6
+ import * as triggerEngine from '../engine/trigger.js';
7
+ export const triggerRoutes = new Hono();
8
+ const triggerBodySchema = z.object({
9
+ channel: z.string().nullable().optional(),
10
+ pattern: z.string().nullable().optional(),
11
+ mention: z.boolean().nullable().optional(),
12
+ action_name: z.string().min(1),
13
+ enabled: z.boolean().optional(),
14
+ });
15
+ const updateTriggerBodySchema = triggerBodySchema.partial();
16
+ // POST /v1/triggers
17
+ triggerRoutes.post('/triggers', requireAuth, rateLimit, async (c) => {
18
+ try {
19
+ const parsed = triggerBodySchema.safeParse(await c.req.json());
20
+ if (!parsed.success) {
21
+ return c.json({ ok: false, error: { code: 'invalid_request', message: 'invalid trigger body' } }, 400);
22
+ }
23
+ const result = await triggerEngine.createTrigger(c.get('db'), c.get('workspace').id, parsed.data);
24
+ return c.json({ ok: true, data: result }, 201);
25
+ }
26
+ catch (err) {
27
+ return errorResponse(c, err);
28
+ }
29
+ });
30
+ // GET /v1/triggers
31
+ triggerRoutes.get('/triggers', requireAuth, rateLimit, async (c) => {
32
+ try {
33
+ const result = await triggerEngine.listTriggers(c.get('db'), c.get('workspace').id);
34
+ return c.json({ ok: true, data: result });
35
+ }
36
+ catch (err) {
37
+ return errorResponse(c, err);
38
+ }
39
+ });
40
+ // GET /v1/triggers/:id
41
+ triggerRoutes.get('/triggers/:id', requireAuth, rateLimit, async (c) => {
42
+ try {
43
+ const result = await triggerEngine.getTrigger(c.get('db'), c.get('workspace').id, c.req.param('id'));
44
+ if (!result) {
45
+ return c.json({ ok: false, error: { code: 'trigger_not_found', message: 'Trigger not found' } }, 404);
46
+ }
47
+ return c.json({ ok: true, data: result });
48
+ }
49
+ catch (err) {
50
+ return errorResponse(c, err);
51
+ }
52
+ });
53
+ // PATCH /v1/triggers/:id
54
+ triggerRoutes.patch('/triggers/:id', requireAuth, rateLimit, async (c) => {
55
+ try {
56
+ const parsed = updateTriggerBodySchema.safeParse(await c.req.json());
57
+ if (!parsed.success) {
58
+ return c.json({ ok: false, error: { code: 'invalid_request', message: 'invalid trigger body' } }, 400);
59
+ }
60
+ const result = await triggerEngine.updateTrigger(c.get('db'), c.get('workspace').id, c.req.param('id'), parsed.data);
61
+ if (!result) {
62
+ return c.json({ ok: false, error: { code: 'trigger_not_found', message: 'Trigger not found' } }, 404);
63
+ }
64
+ return c.json({ ok: true, data: result });
65
+ }
66
+ catch (err) {
67
+ return errorResponse(c, err);
68
+ }
69
+ });
70
+ // DELETE /v1/triggers/:id
71
+ triggerRoutes.delete('/triggers/:id', requireAuth, rateLimit, async (c) => {
72
+ try {
73
+ const deleted = await triggerEngine.deleteTrigger(c.get('db'), c.get('workspace').id, c.req.param('id'));
74
+ if (!deleted) {
75
+ return c.json({ ok: false, error: { code: 'trigger_not_found', message: 'Trigger not found' } }, 404);
76
+ }
77
+ return c.body(null, 204);
78
+ }
79
+ catch (err) {
80
+ return errorResponse(c, err);
81
+ }
82
+ });
83
+ //# sourceMappingURL=trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/routes/trigger.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,19 @@ import type { QueuedEvent } from '../ports/event-queue.js';
4
4
  /**
5
5
  * Persist-first webhook enqueue.
6
6
  *
7
- * Inserts the `pending_events` outbox row synchronously in the request path
8
- * (single cheap INSERT the event is durable once this resolves), then hands
9
- * the row id to the EventQueue adapter in the background. If the adapter's
10
- * send is lost (Workers isolate dies after the response, queue outage), the
11
- * row stays `pending` and `sweepPendingEvents` re-enqueues it later, so the
12
- * event survives instead of vanishing.
7
+ * Skips entirely when the workspace has no active event subscription
8
+ * webhook events fan out exclusively to `event_subscriptions` rows, so with
9
+ * none configured the outbox INSERT and queue send would both be guaranteed
10
+ * no-ops. The existence probe is memoized per request (`webhookSubscribersExist`
11
+ * context variable) since a single mutation can emit several events, and fails
12
+ * open: if the probe errors, the event is enqueued as usual.
13
+ *
14
+ * Otherwise inserts the `pending_events` outbox row synchronously in the
15
+ * request path (single cheap INSERT — the event is durable once this
16
+ * resolves), then hands the row id to the EventQueue adapter in the
17
+ * background. If the adapter's send is lost (Workers isolate dies after the
18
+ * response, queue outage), the row stays `pending` and `sweepPendingEvents`
19
+ * re-enqueues it later, so the event survives instead of vanishing.
13
20
  *
14
21
  * If the outbox insert itself fails, the route still responds normally and the
15
22
  * event degrades to the legacy fire-and-forget queue send (no `outboxId`) —
@@ -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;AAK3D;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB5F"}
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,21 +1,44 @@
1
1
  import { enqueueEvent } from '../engine/eventQueue.js';
2
+ import { hasActiveSubscriptions } from '../engine/eventSubscription.js';
2
3
  import { runInBackground } from './background.js';
3
4
  import { getRequestLogger, toErrorDetails } from '../lib/logger.js';
4
5
  /**
5
6
  * Persist-first webhook enqueue.
6
7
  *
7
- * Inserts the `pending_events` outbox row synchronously in the request path
8
- * (single cheap INSERT the event is durable once this resolves), then hands
9
- * the row id to the EventQueue adapter in the background. If the adapter's
10
- * send is lost (Workers isolate dies after the response, queue outage), the
11
- * row stays `pending` and `sweepPendingEvents` re-enqueues it later, so the
12
- * event survives instead of vanishing.
8
+ * Skips entirely when the workspace has no active event subscription
9
+ * webhook events fan out exclusively to `event_subscriptions` rows, so with
10
+ * none configured the outbox INSERT and queue send would both be guaranteed
11
+ * no-ops. The existence probe is memoized per request (`webhookSubscribersExist`
12
+ * context variable) since a single mutation can emit several events, and fails
13
+ * open: if the probe errors, the event is enqueued as usual.
14
+ *
15
+ * Otherwise inserts the `pending_events` outbox row synchronously in the
16
+ * request path (single cheap INSERT — the event is durable once this
17
+ * resolves), then hands the row id to the EventQueue adapter in the
18
+ * background. If the adapter's send is lost (Workers isolate dies after the
19
+ * response, queue outage), the row stays `pending` and `sweepPendingEvents`
20
+ * re-enqueues it later, so the event survives instead of vanishing.
13
21
  *
14
22
  * If the outbox insert itself fails, the route still responds normally and the
15
23
  * event degrades to the legacy fire-and-forget queue send (no `outboxId`) —
16
24
  * a webhook should never fail the mutation that triggered it.
17
25
  */
18
26
  export async function sendWebhookEvent(c, event) {
27
+ try {
28
+ let subscribersExist = c.get('webhookSubscribersExist');
29
+ if (subscribersExist === undefined) {
30
+ subscribersExist = await hasActiveSubscriptions(c.get('db'), event.workspaceId);
31
+ c.set('webhookSubscribersExist', subscribersExist);
32
+ }
33
+ if (!subscribersExist)
34
+ return;
35
+ }
36
+ catch (error) {
37
+ // Fail open: a broken probe must not drop events for subscribed workspaces.
38
+ getRequestLogger(c, 'webhook.outbox').warn(`subscription probe failed for ${event.type}`, {
39
+ ...toErrorDetails(error),
40
+ });
41
+ }
19
42
  let outboxId;
20
43
  try {
21
44
  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,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,CAAkB,EAAE,KAAkB;IAC3E,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,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 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAexC,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;AAK5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAmBxC,eAAO,MAAM,eAAe,qDAAqB,CAAC"}
@@ -8,6 +8,7 @@ import * as activityEngine from '../engine/activity.js';
8
8
  import * as dmAllEngine from '../engine/dmAll.js';
9
9
  import * as tokenRotateEngine from '../engine/tokenRotate.js';
10
10
  import { getWorkspaceStreamConfig, setWorkspaceStreamOverride, } from '../lib/workspaceStream.js';
11
+ import { getFleetNodesConfig, setFleetNodesOverride, } from '../lib/fleetNodes.js';
11
12
  import { getRequestLogger, toErrorDetails } from '../lib/logger.js';
12
13
  import { emitServerEvent } from '../lib/serverTelemetry.js';
13
14
  import { errorResponse, asCodedError } from '../lib/httpError.js';
@@ -23,6 +24,10 @@ const updateWorkspaceStreamSchema = z.object({
23
24
  enabled: z.boolean().optional(),
24
25
  mode: z.string().optional(),
25
26
  }).passthrough();
27
+ const updateFleetNodesSchema = z.object({
28
+ enabled: z.boolean().optional(),
29
+ mode: z.string().optional(),
30
+ }).passthrough();
26
31
  const PUBLIC_WORKSPACE_LOOKUP_LIMIT = 30;
27
32
  const publicWorkspaceLookupBuckets = new Map();
28
33
  let lastPublicWorkspaceLookupCleanup = Date.now();
@@ -332,4 +337,89 @@ workspaceRoutes.put('/workspace/stream', requireWorkspaceKey, rateLimit, async (
332
337
  }, (error.status || 500));
333
338
  }
334
339
  });
340
+ // GET /workspace/fleet-nodes - effective fleet node control rollout flag (Phase 6)
341
+ workspaceRoutes.get('/workspace/fleet-nodes', requireWorkspaceKey, rateLimit, async (c) => {
342
+ const logger = getRequestLogger(c, 'workspace.fleet_nodes.get');
343
+ const workspaceId = c.get('workspace').id;
344
+ try {
345
+ const { kv, config: engineConfig } = c.get('engine');
346
+ const config = await getFleetNodesConfig(kv, workspaceId, engineConfig.fleetNodesEnabled ?? false);
347
+ return c.json({
348
+ ok: true,
349
+ data: {
350
+ enabled: config.enabled,
351
+ default_enabled: config.defaultEnabled,
352
+ override: config.override,
353
+ },
354
+ });
355
+ }
356
+ catch (err) {
357
+ const error = asCodedError(err);
358
+ logger.error('Failed to get fleet nodes config', {
359
+ workspaceId,
360
+ code: error.code,
361
+ status: error.status,
362
+ ...toErrorDetails(error),
363
+ });
364
+ return c.json({
365
+ ok: false,
366
+ error: { code: error.code || 'internal_error', message: error.message },
367
+ }, (error.status || 500));
368
+ }
369
+ });
370
+ // PUT /workspace/fleet-nodes - set the per-workspace fleet node control override
371
+ workspaceRoutes.put('/workspace/fleet-nodes', requireWorkspaceKey, rateLimit, async (c) => {
372
+ const logger = getRequestLogger(c, 'workspace.fleet_nodes.put');
373
+ const workspaceId = c.get('workspace').id;
374
+ try {
375
+ const parsed = updateFleetNodesSchema.safeParse(await c.req.json());
376
+ if (!parsed.success) {
377
+ return c.json({
378
+ ok: false,
379
+ error: { code: 'invalid_request', message: 'Provide { enabled: boolean } or { mode: "inherit" }' },
380
+ }, 400);
381
+ }
382
+ const body = parsed.data;
383
+ let override;
384
+ if (body?.mode === 'inherit') {
385
+ override = null;
386
+ }
387
+ else if (typeof body?.enabled === 'boolean') {
388
+ override = body.enabled;
389
+ }
390
+ else {
391
+ return c.json({
392
+ ok: false,
393
+ error: { code: 'invalid_request', message: 'Provide { enabled: boolean } or { mode: "inherit" }' },
394
+ }, 400);
395
+ }
396
+ const { kv, config: engineConfig } = c.get('engine');
397
+ await setFleetNodesOverride(kv, workspaceId, override);
398
+ const config = await getFleetNodesConfig(kv, workspaceId, engineConfig.fleetNodesEnabled ?? false);
399
+ emitServerEvent(c, workspaceId, 'relaycast_server_workspace_fleet_nodes_updated', {
400
+ fleet_nodes_mode: override === null ? 'inherit' : (override ? 'enabled' : 'disabled'),
401
+ });
402
+ return c.json({
403
+ ok: true,
404
+ data: {
405
+ enabled: config.enabled,
406
+ default_enabled: config.defaultEnabled,
407
+ override: config.override,
408
+ },
409
+ });
410
+ }
411
+ catch (err) {
412
+ const error = asCodedError(err);
413
+ logger.error('Failed to update fleet nodes config', {
414
+ workspaceId,
415
+ code: error.code,
416
+ status: error.status,
417
+ ...toErrorDetails(error),
418
+ });
419
+ return c.json({
420
+ ok: false,
421
+ error: { code: error.code || 'internal_error', message: error.message },
422
+ }, (error.status || 500));
423
+ }
424
+ });
335
425
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relaycast/engine",
3
- "version": "3.1.1",
3
+ "version": "4.1.0",
4
4
  "type": "module",
5
5
  "description": "Portable, platform-agnostic engine for Relaycast — channels, threads, DMs, presence, real-time events. Runs on Node + SQLite (self-host) or behind a Cloudflare Durable Object adapter (hosted).",
6
6
  "bin": {
@@ -43,8 +43,8 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@hono/node-server": "^1.13.7",
46
- "@relaycast/a2a": "3.1.1",
47
- "@relaycast/types": "3.1.1",
46
+ "@relaycast/a2a": "4.1.0",
47
+ "@relaycast/types": "4.1.0",
48
48
  "better-sqlite3": "^11.10.0",
49
49
  "drizzle-orm": "^0.45.1",
50
50
  "hono": "^4.11.9",