@relaycast/engine 4.1.6 → 5.0.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 (190) hide show
  1. package/dist/adapters/node/index.d.ts.map +1 -1
  2. package/dist/adapters/node/index.js +23 -1
  3. package/dist/adapters/node/index.js.map +1 -1
  4. package/dist/adapters/node/presence.d.ts +7 -3
  5. package/dist/adapters/node/presence.d.ts.map +1 -1
  6. package/dist/adapters/node/presence.js +10 -8
  7. package/dist/adapters/node/presence.js.map +1 -1
  8. package/dist/adapters/node/realtime.d.ts.map +1 -1
  9. package/dist/adapters/node/realtime.js +8 -3
  10. package/dist/adapters/node/realtime.js.map +1 -1
  11. package/dist/bin/serve.js +2 -4
  12. package/dist/bin/serve.js.map +1 -1
  13. package/dist/db/migrations/0021_node_delivery_contracts.sql +70 -0
  14. package/dist/db/migrations/0022_http_push_redrive.sql +13 -0
  15. package/dist/db/migrations/0023_direct_ws_nodes.sql +124 -0
  16. package/dist/db/migrations/0024_binding_workspace_constraints.sql +109 -0
  17. package/dist/db/schema.d.ts +339 -0
  18. package/dist/db/schema.d.ts.map +1 -1
  19. package/dist/db/schema.js +48 -1
  20. package/dist/db/schema.js.map +1 -1
  21. package/dist/engine/action.d.ts +0 -7
  22. package/dist/engine/action.d.ts.map +1 -1
  23. package/dist/engine/action.js +0 -7
  24. package/dist/engine/action.js.map +1 -1
  25. package/dist/engine/agent.d.ts.map +1 -1
  26. package/dist/engine/agent.js +7 -1
  27. package/dist/engine/agent.js.map +1 -1
  28. package/dist/engine/delivery.d.ts +24 -0
  29. package/dist/engine/delivery.d.ts.map +1 -1
  30. package/dist/engine/delivery.js +190 -74
  31. package/dist/engine/delivery.js.map +1 -1
  32. package/dist/engine/deliveryWrites.d.ts +5 -0
  33. package/dist/engine/deliveryWrites.d.ts.map +1 -1
  34. package/dist/engine/deliveryWrites.js +51 -11
  35. package/dist/engine/deliveryWrites.js.map +1 -1
  36. package/dist/engine/invocationCompletion.d.ts +1 -1
  37. package/dist/engine/invocationCompletion.d.ts.map +1 -1
  38. package/dist/engine/invocationCompletion.js +1 -16
  39. package/dist/engine/invocationCompletion.js.map +1 -1
  40. package/dist/engine/message.d.ts.map +1 -1
  41. package/dist/engine/message.js +1 -0
  42. package/dist/engine/message.js.map +1 -1
  43. package/dist/engine/node.d.ts +85 -0
  44. package/dist/engine/node.d.ts.map +1 -1
  45. package/dist/engine/node.js +473 -14
  46. package/dist/engine/node.js.map +1 -1
  47. package/dist/engine/nodeContext.d.ts +22 -0
  48. package/dist/engine/nodeContext.d.ts.map +1 -0
  49. package/dist/engine/nodeContext.js +104 -0
  50. package/dist/engine/nodeContext.js.map +1 -0
  51. package/dist/engine/thread.d.ts.map +1 -1
  52. package/dist/engine/thread.js +37 -17
  53. package/dist/engine/thread.js.map +1 -1
  54. package/dist/engine/wsAuth.d.ts +36 -0
  55. package/dist/engine/wsAuth.d.ts.map +1 -0
  56. package/dist/engine/wsAuth.js +57 -0
  57. package/dist/engine/wsAuth.js.map +1 -0
  58. package/dist/engine.d.ts.map +1 -1
  59. package/dist/engine.js +46 -74
  60. package/dist/engine.js.map +1 -1
  61. package/dist/entrypoints/node.d.ts.map +1 -1
  62. package/dist/entrypoints/node.js +27 -51
  63. package/dist/entrypoints/node.js.map +1 -1
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +5 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/lib/httpError.d.ts +5 -1
  69. package/dist/lib/httpError.d.ts.map +1 -1
  70. package/dist/lib/httpError.js +9 -5
  71. package/dist/lib/httpError.js.map +1 -1
  72. package/dist/lib/httpQuery.d.ts +28 -0
  73. package/dist/lib/httpQuery.d.ts.map +1 -0
  74. package/dist/lib/httpQuery.js +32 -0
  75. package/dist/lib/httpQuery.js.map +1 -0
  76. package/dist/lib/httpResponse.d.ts +116 -0
  77. package/dist/lib/httpResponse.d.ts.map +1 -0
  78. package/dist/lib/httpResponse.js +65 -0
  79. package/dist/lib/httpResponse.js.map +1 -0
  80. package/dist/middleware/auth.d.ts.map +1 -1
  81. package/dist/middleware/auth.js +3 -2
  82. package/dist/middleware/auth.js.map +1 -1
  83. package/dist/middleware/idempotency.d.ts +30 -0
  84. package/dist/middleware/idempotency.d.ts.map +1 -1
  85. package/dist/middleware/idempotency.js +14 -0
  86. package/dist/middleware/idempotency.js.map +1 -1
  87. package/dist/middleware/planLimits.d.ts.map +1 -1
  88. package/dist/middleware/planLimits.js +2 -7
  89. package/dist/middleware/planLimits.js.map +1 -1
  90. package/dist/middleware/rateLimit.d.ts.map +1 -1
  91. package/dist/middleware/rateLimit.js +2 -7
  92. package/dist/middleware/rateLimit.js.map +1 -1
  93. package/dist/ports/index.d.ts +0 -14
  94. package/dist/ports/index.d.ts.map +1 -1
  95. package/dist/routes/a2a.d.ts.map +1 -1
  96. package/dist/routes/a2a.js +41 -83
  97. package/dist/routes/a2a.js.map +1 -1
  98. package/dist/routes/action.d.ts.map +1 -1
  99. package/dist/routes/action.js +32 -37
  100. package/dist/routes/action.js.map +1 -1
  101. package/dist/routes/agent.d.ts.map +1 -1
  102. package/dist/routes/agent.js +69 -73
  103. package/dist/routes/agent.js.map +1 -1
  104. package/dist/routes/certify.d.ts.map +1 -1
  105. package/dist/routes/certify.js +21 -35
  106. package/dist/routes/certify.js.map +1 -1
  107. package/dist/routes/channel.d.ts.map +1 -1
  108. package/dist/routes/channel.js +33 -71
  109. package/dist/routes/channel.js.map +1 -1
  110. package/dist/routes/console.d.ts.map +1 -1
  111. package/dist/routes/console.js +22 -32
  112. package/dist/routes/console.js.map +1 -1
  113. package/dist/routes/delivery.d.ts.map +1 -1
  114. package/dist/routes/delivery.js +22 -54
  115. package/dist/routes/delivery.js.map +1 -1
  116. package/dist/routes/deliveryRouting.d.ts +6 -0
  117. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  118. package/dist/routes/deliveryRouting.js +289 -35
  119. package/dist/routes/deliveryRouting.js.map +1 -1
  120. package/dist/routes/directory.d.ts.map +1 -1
  121. package/dist/routes/directory.js +47 -63
  122. package/dist/routes/directory.js.map +1 -1
  123. package/dist/routes/dm.d.ts.map +1 -1
  124. package/dist/routes/dm.js +21 -42
  125. package/dist/routes/dm.js.map +1 -1
  126. package/dist/routes/eventSubscription.d.ts.map +1 -1
  127. package/dist/routes/eventSubscription.js +15 -21
  128. package/dist/routes/eventSubscription.js.map +1 -1
  129. package/dist/routes/fanout.d.ts +2 -1
  130. package/dist/routes/fanout.d.ts.map +1 -1
  131. package/dist/routes/fanout.js +25 -15
  132. package/dist/routes/fanout.js.map +1 -1
  133. package/dist/routes/file.d.ts.map +1 -1
  134. package/dist/routes/file.js +34 -40
  135. package/dist/routes/file.js.map +1 -1
  136. package/dist/routes/groupDm.d.ts.map +1 -1
  137. package/dist/routes/groupDm.js +23 -48
  138. package/dist/routes/groupDm.js.map +1 -1
  139. package/dist/routes/inboundWebhook.d.ts.map +1 -1
  140. package/dist/routes/inboundWebhook.js +17 -35
  141. package/dist/routes/inboundWebhook.js.map +1 -1
  142. package/dist/routes/inbox.d.ts.map +1 -1
  143. package/dist/routes/inbox.js +2 -1
  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 +39 -50
  147. package/dist/routes/message.js.map +1 -1
  148. package/dist/routes/node.d.ts.map +1 -1
  149. package/dist/routes/node.js +125 -12
  150. package/dist/routes/node.js.map +1 -1
  151. package/dist/routes/presence.d.ts.map +1 -1
  152. package/dist/routes/presence.js +4 -3
  153. package/dist/routes/presence.js.map +1 -1
  154. package/dist/routes/reaction.d.ts.map +1 -1
  155. package/dist/routes/reaction.js +10 -21
  156. package/dist/routes/reaction.js.map +1 -1
  157. package/dist/routes/receipt.d.ts.map +1 -1
  158. package/dist/routes/receipt.js +7 -15
  159. package/dist/routes/receipt.js.map +1 -1
  160. package/dist/routes/routing.d.ts.map +1 -1
  161. package/dist/routes/routing.js +38 -51
  162. package/dist/routes/routing.js.map +1 -1
  163. package/dist/routes/search.d.ts.map +1 -1
  164. package/dist/routes/search.js +15 -12
  165. package/dist/routes/search.js.map +1 -1
  166. package/dist/routes/systemPrompt.d.ts.map +1 -1
  167. package/dist/routes/systemPrompt.js +8 -13
  168. package/dist/routes/systemPrompt.js.map +1 -1
  169. package/dist/routes/thread.d.ts.map +1 -1
  170. package/dist/routes/thread.js +17 -35
  171. package/dist/routes/thread.js.map +1 -1
  172. package/dist/routes/trigger.d.ts.map +1 -1
  173. package/dist/routes/trigger.js +15 -14
  174. package/dist/routes/trigger.js.map +1 -1
  175. package/dist/routes/workspace.d.ts.map +1 -1
  176. package/dist/routes/workspace.js +39 -220
  177. package/dist/routes/workspace.js.map +1 -1
  178. package/package.json +3 -3
  179. package/dist/lib/fleetNodes.d.ts +0 -9
  180. package/dist/lib/fleetNodes.d.ts.map +0 -1
  181. package/dist/lib/fleetNodes.js +0 -66
  182. package/dist/lib/fleetNodes.js.map +0 -1
  183. package/dist/lib/workspaceStream.d.ts +0 -9
  184. package/dist/lib/workspaceStream.d.ts.map +0 -1
  185. package/dist/lib/workspaceStream.js +0 -53
  186. package/dist/lib/workspaceStream.js.map +0 -1
  187. package/dist/middleware/fleetNodes.d.ts +0 -10
  188. package/dist/middleware/fleetNodes.d.ts.map +0 -1
  189. package/dist/middleware/fleetNodes.js +0 -18
  190. package/dist/middleware/fleetNodes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"inboundWebhook.js","sourceRoot":"","sources":["../../src/routes/inboundWebhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inboundWebhook.js","sourceRoot":"","sources":["../../src/routes/inboundWebhook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/routes/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AASxC,eAAO,MAAM,WAAW,qDAAqB,CAAC"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/routes/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAUxC,eAAO,MAAM,WAAW,qDAAqB,CAAC"}
@@ -6,6 +6,7 @@ import * as deliveryEngine from '../engine/delivery.js';
6
6
  import { notifyDeliveryFailures } from './deliveryRouting.js';
7
7
  import { runInBackground } from './background.js';
8
8
  import { errorResponse } from '../lib/httpError.js';
9
+ import { jsonOk } from '../lib/httpResponse.js';
9
10
  export const inboxRoutes = new Hono();
10
11
  // GET /v1/inbox - unified inbox for the calling agent
11
12
  inboxRoutes.get('/inbox', requireAgentToken, rateLimit, async (c) => {
@@ -18,7 +19,7 @@ inboxRoutes.get('/inbox', requireAgentToken, rateLimit, async (c) => {
18
19
  runInBackground(c, notifyDeliveryFailures(c, expired), 'fanout delivery expired');
19
20
  }
20
21
  const result = await inboxEngine.getInbox(db, workspace.id, agent.id);
21
- return c.json({ ok: true, data: result });
22
+ return jsonOk(c, result);
22
23
  }
23
24
  catch (err) {
24
25
  return errorResponse(c, err);
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/routes/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAU,CAAC;AAE9C,sDAAsD;AACtD,WAAW,CAAC,GAAG,CACb,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,eAAe,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,KAAM,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/routes/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAU,CAAC;AAE9C,sDAAsD;AACtD,WAAW,CAAC,GAAG,CACb,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,KAAK,EAAE,CAAC,EAAE,EAAE;IACV,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,eAAe,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,KAAM,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/routes/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAiBxC,eAAO,MAAM,aAAa,qDAAqB,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/routes/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAuBxC,eAAO,MAAM,aAAa,qDAAqB,CAAC"}
@@ -2,19 +2,20 @@ import { Hono } from 'hono';
2
2
  import { z } from 'zod';
3
3
  import { requireAuth } from '../middleware/auth.js';
4
4
  import { rateLimit } from '../middleware/rateLimit.js';
5
- import { parseIdempotencyKey, runIdempotent } from '../middleware/idempotency.js';
5
+ import { jsonIdempotentOk, parseIdempotencyKey, runIdempotent } from '../middleware/idempotency.js';
6
6
  import * as messageEngine from '../engine/message.js';
7
7
  import * as channelEngine from '../engine/channel.js';
8
8
  import * as triggerEngine from '../engine/trigger.js';
9
9
  import { resolveMailboxConfig } from '../engine/mailboxConfig.js';
10
- import { fanoutToChannel } from './fanout.js';
10
+ import { publishWorkspaceEvent } from './fanout.js';
11
11
  import { notifyDeliveryRejections, routeDeliveryOutcomes } from './deliveryRouting.js';
12
12
  import { buildMessageCreatedEventData } from '../engine/deliveryWire.js';
13
13
  import { runInBackground } from './background.js';
14
- import { isFleetNodesEnabled } from '../lib/fleetNodes.js';
15
14
  import { sendWebhookEvent } from './webhookOutbox.js';
16
15
  import { emitServerEvent } from '../lib/serverTelemetry.js';
17
16
  import { errorResponse } from '../lib/httpError.js';
17
+ import { jsonError, jsonNotFound, jsonOk, parseJsonBody, } from '../lib/httpResponse.js';
18
+ import { parsePaginationQuery } from '../lib/httpQuery.js';
18
19
  export const messageRoutes = new Hono();
19
20
  const postMessageSchema = z.object({
20
21
  text: z.string().min(1),
@@ -24,43 +25,47 @@ const postMessageSchema = z.object({
24
25
  content_type: z.string().optional(),
25
26
  mode: z.enum(['wait', 'steer']).default('wait'),
26
27
  });
28
+ function postMessageInvalidMessage(failure) {
29
+ const field = failure.error.issues[0]?.path[0];
30
+ if (field === 'text')
31
+ return 'text is required';
32
+ if (field === 'mode')
33
+ return 'mode must be "wait" or "steer"';
34
+ if (field === 'attachments')
35
+ return 'attachments must be an array of strings';
36
+ if (field === 'blocks')
37
+ return 'blocks must be an array';
38
+ if (field === 'data')
39
+ return 'data must be an object';
40
+ if (field === 'content_type')
41
+ return 'content_type must be a string';
42
+ return 'invalid message body';
43
+ }
27
44
  // POST /v1/channels/:name/messages - post a message
28
45
  messageRoutes.post('/channels/:name/messages', requireAuth, rateLimit, async (c) => {
29
46
  try {
30
47
  const db = c.get('db');
31
48
  const workspace = c.get('workspace');
32
49
  const agent = c.get('agent');
33
- const parsed = postMessageSchema.safeParse(await c.req.json());
34
- if (!parsed.success) {
35
- return c.json({
36
- ok: false,
37
- error: { code: 'invalid_request', message: 'text is required' },
38
- }, 400);
50
+ const parsed = await parseJsonBody(c, postMessageSchema, postMessageInvalidMessage);
51
+ if (!parsed.ok) {
52
+ return parsed.response;
39
53
  }
40
54
  const { text, blocks, attachments, data, content_type, mode } = parsed.data;
41
55
  const { key: idempotencyKey, error: idempotencyError } = parseIdempotencyKey(c.req.header('Idempotency-Key'));
42
56
  if (idempotencyError) {
43
- return c.json({
44
- ok: false,
45
- error: { code: 'invalid_idempotency_key', message: idempotencyError },
46
- }, 400);
57
+ return jsonError(c, 'invalid_idempotency_key', idempotencyError, 400);
47
58
  }
48
59
  const channelName = c.req.param('name');
49
60
  // Resolve channel name to ID
50
61
  const channel = await channelEngine.getChannel(db, workspace.id, channelName);
51
62
  if (!channel) {
52
- return c.json({
53
- ok: false,
54
- error: { code: 'channel_not_found', message: `Channel "${channelName}" not found` },
55
- }, 404);
63
+ return jsonNotFound(c, 'channel_not_found', `Channel "${channelName}" not found`);
56
64
  }
57
65
  // Determine agent ID (from agent token or body)
58
66
  const agentId = agent?.id;
59
67
  if (!agentId) {
60
- return c.json({
61
- ok: false,
62
- error: { code: 'agent_token_required', message: 'Agent token required to post messages' },
63
- }, 403);
68
+ return jsonError(c, 'agent_token_required', 'Agent token required to post messages', 403);
64
69
  }
65
70
  const mailbox = resolveMailboxConfig(c.get('engine').config, workspace.id);
66
71
  const toMessageCreatedEventData = (data) => buildMessageCreatedEventData(data, {
@@ -85,15 +90,12 @@ messageRoutes.post('/channels/:name/messages', requireAuth, rateLimit, async (c)
85
90
  });
86
91
  },
87
92
  });
88
- if (idempotent.replayed) {
89
- c.header('Idempotency-Replayed', 'true');
90
- }
91
93
  // Durable event queue for webhook delivery; real-time pub/sub still fire-and-forget.
92
94
  // Only publish for fresh writes, not idempotent replays.
93
95
  if (!idempotent.replayed) {
94
96
  const { _deliveries, _delivery_rejections, ...publicData } = idempotent.data;
95
97
  const eventData = toMessageCreatedEventData(idempotent.data);
96
- runInBackground(c, fanoutToChannel(c, channel.id, 'message.created', eventData), 'fanout message.created');
98
+ runInBackground(c, publishWorkspaceEvent(c, 'message.created', eventData, channel.id), 'publish message.created');
97
99
  if (_deliveries && _deliveries.length > 0) {
98
100
  runInBackground(c, routeDeliveryOutcomes(c, _deliveries, 'message.created', eventData), 'route message deliveries');
99
101
  }
@@ -106,15 +108,8 @@ messageRoutes.post('/channels/:name/messages', requireAuth, rateLimit, async (c)
106
108
  message_kind: publicData.thread_id ? 'thread_reply' : 'channel_message',
107
109
  has_attachments: Boolean(publicData.has_attachments),
108
110
  });
109
- runInBackground(c,
110
- // Phase 6 rollout flag: declarative trigger evaluation is part of the
111
- // fleet node control surface, so it is skipped entirely when the flag is
112
- // off. Checked here (not per-trigger) so the policy lives at one boundary.
113
- (async () => {
114
- const { kv, config, nodeConnections } = c.get('engine');
115
- if (!(await isFleetNodesEnabled(kv, workspace.id, config.fleetNodesEnabled ?? false))) {
116
- return;
117
- }
111
+ runInBackground(c, (async () => {
112
+ const { nodeConnections } = c.get('engine');
118
113
  await triggerEngine.fireMessageTriggers({
119
114
  db,
120
115
  nodeConnections,
@@ -133,9 +128,7 @@ messageRoutes.post('/channels/:name/messages', requireAuth, rateLimit, async (c)
133
128
  });
134
129
  })(), 'fire message triggers');
135
130
  }
136
- // Strip internal _deliveries field before returning to client
137
- const { _deliveries: _dropDeliveries, _delivery_rejections: _dropRejections, ...responseData } = idempotent.data;
138
- return c.json({ ok: true, data: responseData }, idempotent.status);
131
+ return jsonIdempotentOk(c, idempotent);
139
132
  }
140
133
  catch (err) {
141
134
  return errorResponse(c, err);
@@ -149,16 +142,15 @@ messageRoutes.get('/channels/:name/messages', requireAuth, rateLimit, async (c)
149
142
  const channelName = c.req.param('name');
150
143
  const channel = await channelEngine.getChannel(db, workspace.id, channelName);
151
144
  if (!channel) {
152
- return c.json({
153
- ok: false,
154
- error: { code: 'channel_not_found', message: `Channel "${channelName}" not found` },
155
- }, 404);
145
+ return jsonNotFound(c, 'channel_not_found', `Channel "${channelName}" not found`);
146
+ }
147
+ const query = parsePaginationQuery(c);
148
+ if (!query.ok) {
149
+ return query.response;
156
150
  }
157
- const limit = c.req.query('limit') ? parseInt(c.req.query('limit'), 10) : undefined;
158
- const before = c.req.query('before');
159
- const after = c.req.query('after');
151
+ const { limit, before, after } = query.data;
160
152
  const messages = await messageEngine.getMessages(db, workspace.id, channel.id, { limit, before, after });
161
- return c.json({ ok: true, data: messages });
153
+ return jsonOk(c, messages);
162
154
  }
163
155
  catch (err) {
164
156
  return errorResponse(c, err);
@@ -172,12 +164,9 @@ messageRoutes.get('/messages/:id', requireAuth, rateLimit, async (c) => {
172
164
  const messageId = c.req.param('id');
173
165
  const message = await messageEngine.getMessage(db, workspace.id, messageId);
174
166
  if (!message) {
175
- return c.json({
176
- ok: false,
177
- error: { code: 'message_not_found', message: 'Message not found' },
178
- }, 404);
167
+ return jsonNotFound(c, 'message_not_found', 'Message not found');
179
168
  }
180
- return c.json({ ok: true, data: message });
169
+ return jsonOk(c, message);
181
170
  }
182
171
  catch (err) {
183
172
  return errorResponse(c, err);
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/routes/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/routes/message.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,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOxC,eAAO,MAAM,UAAU,qDAAqB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/routes/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAexC,eAAO,MAAM,UAAU,qDAAqB,CAAC"}
@@ -2,53 +2,166 @@ import { Hono } from 'hono';
2
2
  import { z } from 'zod';
3
3
  import { requireAuth, requireWorkspaceKey } from '../middleware/auth.js';
4
4
  import { rateLimit } from '../middleware/rateLimit.js';
5
- import { requireFleetNodes } from '../middleware/fleetNodes.js';
6
5
  import { errorResponse } from '../lib/httpError.js';
6
+ import { isSafeExternalUrl } from '../lib/ssrf.js';
7
+ import { jsonCreated, jsonError, jsonNotFound, jsonNoContent, jsonOk, parseJsonBody, } from '../lib/httpResponse.js';
7
8
  import * as nodeEngine from '../engine/node.js';
8
9
  export const nodeRoutes = new Hono();
10
+ const nodeKindSchema = z.enum(['fleet_ws', 'http_push', 'direct_ws', 'poll']);
11
+ const deliveryAckModeSchema = z.enum(['on_2xx', 'manual', 'response']);
12
+ const headerNameSchema = z.string().regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/);
13
+ const headerValueSchema = z.string().refine((value) => !/[\r\n]/.test(value), 'header values cannot contain CR/LF');
14
+ const deliveryAuthSchema = z.discriminatedUnion('type', [
15
+ z.object({ type: z.literal('none') }),
16
+ z.object({ type: z.literal('bearer'), token: z.string().min(1) }),
17
+ z.object({ type: z.literal('static_headers'), headers: z.record(headerNameSchema, headerValueSchema) }),
18
+ z.object({
19
+ type: z.literal('hmac_sha256'),
20
+ secret: z.string().min(1),
21
+ signature_header: headerNameSchema.default('X-Relaycast-Signature'),
22
+ timestamp_header: headerNameSchema.default('X-Relaycast-Timestamp'),
23
+ signed_payload: z.enum(['body', 'timestamp.body']).default('timestamp.body'),
24
+ encoding: z.literal('hex').default('hex'),
25
+ prefix: z.string().default('sha256='),
26
+ }),
27
+ ]);
28
+ const httpDeliverySchema = z.object({
29
+ url: z.url(),
30
+ ack_mode: deliveryAckModeSchema.default('manual'),
31
+ auth: deliveryAuthSchema.default({ type: 'none' }),
32
+ });
9
33
  const createNodeSchema = z.object({
10
34
  node_id: z.string().min(1).optional(),
11
35
  name: z.string().min(1),
36
+ kind: nodeKindSchema.optional(),
37
+ delivery_adapter: z.string().min(1).optional(),
38
+ delivery: z.record(z.string(), z.unknown()).nullable().optional(),
12
39
  capabilities: z.array(z.string().min(1)).optional(),
13
40
  max_agents: z.number().int().nonnegative().optional(),
14
41
  tags: z.array(z.string()).optional(),
15
42
  version: z.string().optional(),
16
43
  });
44
+ const bindAgentSchema = z.object({
45
+ agent_name: z.string().min(1),
46
+ session_ref: z.string().nullable().optional(),
47
+ priority: z.number().int().optional(),
48
+ });
49
+ function normalizeDelivery(kind, delivery) {
50
+ if (kind !== 'http_push')
51
+ return delivery ?? null;
52
+ const parsed = httpDeliverySchema.safeParse(delivery ?? {});
53
+ if (!parsed.success) {
54
+ return parsed;
55
+ }
56
+ return parsed.data;
57
+ }
58
+ function strictExternalUrl(c) {
59
+ const environment = c.get('engine').config.environment;
60
+ return environment !== 'test';
61
+ }
17
62
  // POST /v1/nodes - enroll or rotate a node token (workspace-key only)
18
- nodeRoutes.post('/nodes', requireWorkspaceKey, requireFleetNodes, rateLimit, async (c) => {
63
+ nodeRoutes.post('/nodes', requireWorkspaceKey, rateLimit, async (c) => {
19
64
  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);
65
+ const parsed = await parseJsonBody(c, createNodeSchema, 'invalid node body');
66
+ if (!parsed.ok) {
67
+ return parsed.response;
68
+ }
69
+ const existing = await nodeEngine.getNodeByName(c.get('db'), c.get('workspace').id, parsed.data.name);
70
+ const kind = parsed.data.kind ?? existing?.kind ?? 'fleet_ws';
71
+ const deliveryInput = parsed.data.delivery === undefined
72
+ ? existing?.deliveryConfig ?? null
73
+ : parsed.data.delivery;
74
+ const delivery = normalizeDelivery(kind, deliveryInput);
75
+ if (delivery && 'success' in delivery && !delivery.success) {
76
+ return jsonError(c, 'invalid_node_delivery', 'invalid node delivery body', 400);
23
77
  }
24
- const result = await nodeEngine.createNodeToken(c.get('db'), c.get('workspace').id, parsed.data);
25
- return c.json({ ok: true, data: result }, 201);
78
+ if (kind === 'http_push') {
79
+ const url = delivery?.url;
80
+ if (!url) {
81
+ return jsonError(c, 'invalid_node_delivery', 'http_push nodes require delivery.url', 400);
82
+ }
83
+ if (!isSafeExternalUrl(url, { strict: strictExternalUrl(c) })) {
84
+ return jsonError(c, 'unsafe_node_delivery_url', 'delivery.url is not allowed', 400);
85
+ }
86
+ }
87
+ const result = await nodeEngine.createNodeToken(c.get('db'), c.get('workspace').id, {
88
+ ...parsed.data,
89
+ kind,
90
+ delivery: delivery && !('success' in delivery) ? delivery : null,
91
+ });
92
+ return jsonCreated(c, result);
26
93
  }
27
94
  catch (err) {
28
95
  return errorResponse(c, err);
29
96
  }
30
97
  });
31
98
  // GET /v1/nodes?capability=&name= - node roster
32
- nodeRoutes.get('/nodes', requireAuth, requireFleetNodes, rateLimit, async (c) => {
99
+ nodeRoutes.get('/nodes', requireAuth, rateLimit, async (c) => {
33
100
  try {
34
101
  const result = await nodeEngine.listNodes(c.get('db'), c.get('workspace').id, {
35
102
  capability: c.req.query('capability'),
36
103
  name: c.req.query('name'),
37
104
  });
38
- return c.json({ ok: true, data: result });
105
+ return jsonOk(c, result);
106
+ }
107
+ catch (err) {
108
+ return errorResponse(c, err);
109
+ }
110
+ });
111
+ // GET /v1/nodes/:name/agents - active agent bindings for a node
112
+ nodeRoutes.get('/nodes/:name/agents', requireAuth, rateLimit, async (c) => {
113
+ try {
114
+ const result = await nodeEngine.listNodeAgents(c.get('db'), c.get('workspace').id, c.req.param('name'));
115
+ if (!result) {
116
+ return jsonNotFound(c, 'node_not_found', 'Node not found');
117
+ }
118
+ return jsonOk(c, result);
119
+ }
120
+ catch (err) {
121
+ return errorResponse(c, err);
122
+ }
123
+ });
124
+ // POST /v1/nodes/:name/agents - bind an agent to a node delivery host
125
+ nodeRoutes.post('/nodes/:name/agents', requireWorkspaceKey, rateLimit, async (c) => {
126
+ try {
127
+ const parsed = await parseJsonBody(c, bindAgentSchema, (failure) => {
128
+ const hasAgentIssue = failure.error.issues.some((issue) => issue.path[0] === 'agent_name');
129
+ return hasAgentIssue ? 'agent_name is required' : 'invalid node agent binding body';
130
+ });
131
+ if (!parsed.ok) {
132
+ return parsed.response;
133
+ }
134
+ const result = await nodeEngine.bindAgentToNode(c.get('db'), c.get('workspace').id, c.req.param('name'), parsed.data.agent_name, {
135
+ session_ref: parsed.data.session_ref,
136
+ priority: parsed.data.priority,
137
+ });
138
+ return jsonCreated(c, result);
139
+ }
140
+ catch (err) {
141
+ return errorResponse(c, err);
142
+ }
143
+ });
144
+ // DELETE /v1/nodes/:name/agents/:agentName - remove an active node binding
145
+ nodeRoutes.delete('/nodes/:name/agents/:agentName', requireWorkspaceKey, rateLimit, async (c) => {
146
+ try {
147
+ const deleted = await nodeEngine.unbindAgentFromNode(c.get('db'), c.get('workspace').id, c.req.param('name'), c.req.param('agentName'));
148
+ if (!deleted) {
149
+ return jsonNotFound(c, 'node_agent_binding_not_found', 'Node agent binding not found');
150
+ }
151
+ return jsonNoContent(c);
39
152
  }
40
153
  catch (err) {
41
154
  return errorResponse(c, err);
42
155
  }
43
156
  });
44
157
  // GET /v1/nodes/:name - single node roster entry
45
- nodeRoutes.get('/nodes/:name', requireAuth, requireFleetNodes, rateLimit, async (c) => {
158
+ nodeRoutes.get('/nodes/:name', requireAuth, rateLimit, async (c) => {
46
159
  try {
47
160
  const result = await nodeEngine.getPublicNode(c.get('db'), c.get('workspace').id, c.req.param('name'));
48
161
  if (!result) {
49
- return c.json({ ok: false, error: { code: 'node_not_found', message: 'Node not found' } }, 404);
162
+ return jsonNotFound(c, 'node_not_found', 'Node not found');
50
163
  }
51
- return c.json({ ok: true, data: result });
164
+ return jsonOk(c, result);
52
165
  }
53
166
  catch (err) {
54
167
  return errorResponse(c, err);
@@ -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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,MAAM,EACN,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAU,CAAC;AAE7C,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9E,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAC3E,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,oCAAoC,CAAC,CAAC;AACpH,MAAM,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACtD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACrC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,CAAC;IACvG,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACnE,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACnE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;IACZ,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjD,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;IAC/B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,IAAoC,EAAE,QAAoD;IACnH,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,QAAQ,IAAI,IAAI,CAAC;IAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAkC;IAC3D,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACvD,OAAO,WAAW,KAAK,MAAM,CAAC;AAChC,CAAC;AAED,sEAAsE;AACtE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAK,QAAQ,EAAE,IAAmD,IAAI,UAAU,CAAC;QAC9G,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;YACtD,CAAC,CAAC,QAAQ,EAAE,cAAc,IAAI,IAAI;YAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC,CAAC,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,GAAG,GAAI,QAAoC,EAAE,GAAG,CAAC;YACvD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,SAAS,CAAC,CAAC,EAAE,uBAAuB,EAAE,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9D,OAAO,SAAS,CAAC,CAAC,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE;YAClF,GAAG,MAAM,CAAC,IAAI;YACd,IAAI;YACJ,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;SACjE,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,gDAAgD;AAChD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE;YAC5E,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAChE,UAAU,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,YAAY,CAAC,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,sEAAsE;AACtE,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YACjE,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;YAC3F,OAAO,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,iCAAiC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAC7C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EACX,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EACnB,MAAM,CAAC,IAAI,CAAC,UAAU,EACtB;YACE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;SAC/B,CACF,CAAC;QACF,OAAO,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,2EAA2E;AAC3E,UAAU,CAAC,MAAM,CAAC,gCAAgC,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9F,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAClD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EACX,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,YAAY,CAAC,CAAC,EAAE,8BAA8B,EAAE,8BAA8B,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,iDAAiD;AACjD,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,YAAY,CAAC,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/routes/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOxC,eAAO,MAAM,cAAc,qDAAqB,CAAC"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/routes/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAQxC,eAAO,MAAM,cAAc,qDAAqB,CAAC"}
@@ -4,13 +4,14 @@ import { rateLimit } from '../middleware/rateLimit.js';
4
4
  import * as presenceEngine from '../engine/presence.js';
5
5
  import { emitServerEvent } from '../lib/serverTelemetry.js';
6
6
  import { errorResponse } from '../lib/httpError.js';
7
+ import { jsonOk, jsonSuccess } from '../lib/httpResponse.js';
7
8
  export const presenceRoutes = new Hono();
8
9
  presenceRoutes.get('/agents/presence', requireAuth, rateLimit, async (c) => {
9
10
  try {
10
11
  const db = c.get('db');
11
12
  const workspace = c.get('workspace');
12
13
  const result = await presenceEngine.getPresence(db, c.get('engine').presence, workspace.id);
13
- return c.json({ ok: true, data: result });
14
+ return jsonOk(c, result);
14
15
  }
15
16
  catch (err) {
16
17
  return errorResponse(c, err);
@@ -26,7 +27,7 @@ presenceRoutes.post('/agents/heartbeat', requireAgentToken, rateLimit, async (c)
26
27
  agent_id: agent.id,
27
28
  agent_name: agent.name,
28
29
  });
29
- return c.json({ ok: true });
30
+ return jsonSuccess(c);
30
31
  }
31
32
  catch (err) {
32
33
  return errorResponse(c, err);
@@ -50,7 +51,7 @@ presenceRoutes.post('/agents/disconnect', requireAgentToken, rateLimit, async (c
50
51
  agent_id: agent.id,
51
52
  agent_name: agent.name,
52
53
  });
53
- return c.json({ ok: true });
54
+ return jsonSuccess(c);
54
55
  }
55
56
  catch (err) {
56
57
  return errorResponse(c, err);
@@ -1 +1 @@
1
- {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/routes/presence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/routes/presence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../src/routes/reaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAYxC,eAAO,MAAM,cAAc,qDAAqB,CAAC"}
1
+ {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../src/routes/reaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAmBxC,eAAO,MAAM,cAAc,qDAAqB,CAAC"}