@relaycast/engine 4.2.0 → 5.0.1

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 (255) 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 +9 -1
  9. package/dist/adapters/node/realtime.d.ts.map +1 -1
  10. package/dist/adapters/node/realtime.js +72 -10
  11. package/dist/adapters/node/realtime.js.map +1 -1
  12. package/dist/auth/index.d.ts.map +1 -1
  13. package/dist/auth/index.js +31 -9
  14. package/dist/auth/index.js.map +1 -1
  15. package/dist/auth/tokenKind.d.ts +40 -0
  16. package/dist/auth/tokenKind.d.ts.map +1 -0
  17. package/dist/auth/tokenKind.js +89 -0
  18. package/dist/auth/tokenKind.js.map +1 -0
  19. package/dist/bin/serve.js +2 -4
  20. package/dist/bin/serve.js.map +1 -1
  21. package/dist/db/migrations/0021_node_delivery_contracts.sql +70 -0
  22. package/dist/db/migrations/0022_http_push_redrive.sql +13 -0
  23. package/dist/db/migrations/0023_direct_ws_nodes.sql +124 -0
  24. package/dist/db/migrations/0024_binding_workspace_constraints.sql +109 -0
  25. package/dist/db/migrations/0025_node_kind_role_adapter.sql +45 -0
  26. package/dist/db/migrations/0026_observer_tokens.sql +32 -0
  27. package/dist/db/schema.d.ts +727 -59
  28. package/dist/db/schema.d.ts.map +1 -1
  29. package/dist/db/schema.js +78 -2
  30. package/dist/db/schema.js.map +1 -1
  31. package/dist/engine/action.d.ts +2 -9
  32. package/dist/engine/action.d.ts.map +1 -1
  33. package/dist/engine/action.js +182 -14
  34. package/dist/engine/action.js.map +1 -1
  35. package/dist/engine/activity.d.ts +6 -0
  36. package/dist/engine/activity.d.ts.map +1 -1
  37. package/dist/engine/activity.js +9 -2
  38. package/dist/engine/activity.js.map +1 -1
  39. package/dist/engine/agent.d.ts +0 -33
  40. package/dist/engine/agent.d.ts.map +1 -1
  41. package/dist/engine/agent.js +4 -153
  42. package/dist/engine/agent.js.map +1 -1
  43. package/dist/engine/attachments.d.ts +6 -0
  44. package/dist/engine/attachments.d.ts.map +1 -1
  45. package/dist/engine/attachments.js +37 -0
  46. package/dist/engine/attachments.js.map +1 -1
  47. package/dist/engine/console.d.ts +78 -1
  48. package/dist/engine/console.d.ts.map +1 -1
  49. package/dist/engine/console.js +175 -19
  50. package/dist/engine/console.js.map +1 -1
  51. package/dist/engine/delivery.d.ts +26 -0
  52. package/dist/engine/delivery.d.ts.map +1 -1
  53. package/dist/engine/delivery.js +194 -74
  54. package/dist/engine/delivery.js.map +1 -1
  55. package/dist/engine/deliveryWire.d.ts +4 -0
  56. package/dist/engine/deliveryWire.d.ts.map +1 -1
  57. package/dist/engine/deliveryWire.js +2 -0
  58. package/dist/engine/deliveryWire.js.map +1 -1
  59. package/dist/engine/deliveryWrites.d.ts +6 -0
  60. package/dist/engine/deliveryWrites.d.ts.map +1 -1
  61. package/dist/engine/deliveryWrites.js +58 -13
  62. package/dist/engine/deliveryWrites.js.map +1 -1
  63. package/dist/engine/dm.d.ts.map +1 -1
  64. package/dist/engine/dm.js +11 -33
  65. package/dist/engine/dm.js.map +1 -1
  66. package/dist/engine/dmAll.d.ts.map +1 -1
  67. package/dist/engine/dmAll.js +2 -0
  68. package/dist/engine/dmAll.js.map +1 -1
  69. package/dist/engine/groupDm.d.ts +2 -3
  70. package/dist/engine/groupDm.d.ts.map +1 -1
  71. package/dist/engine/groupDm.js +8 -26
  72. package/dist/engine/groupDm.js.map +1 -1
  73. package/dist/engine/invocationCompletion.d.ts +1 -1
  74. package/dist/engine/invocationCompletion.d.ts.map +1 -1
  75. package/dist/engine/invocationCompletion.js +10 -18
  76. package/dist/engine/invocationCompletion.js.map +1 -1
  77. package/dist/engine/message.d.ts.map +1 -1
  78. package/dist/engine/message.js +16 -44
  79. package/dist/engine/message.js.map +1 -1
  80. package/dist/engine/node.d.ts +97 -0
  81. package/dist/engine/node.d.ts.map +1 -1
  82. package/dist/engine/node.js +555 -27
  83. package/dist/engine/node.js.map +1 -1
  84. package/dist/engine/nodeContext.d.ts +22 -0
  85. package/dist/engine/nodeContext.d.ts.map +1 -0
  86. package/dist/engine/nodeContext.js +80 -0
  87. package/dist/engine/nodeContext.js.map +1 -0
  88. package/dist/engine/nodeDeliver.d.ts +23 -0
  89. package/dist/engine/nodeDeliver.d.ts.map +1 -0
  90. package/dist/engine/nodeDeliver.js +81 -0
  91. package/dist/engine/nodeDeliver.js.map +1 -0
  92. package/dist/engine/observerToken.d.ts +110 -0
  93. package/dist/engine/observerToken.d.ts.map +1 -0
  94. package/dist/engine/observerToken.js +528 -0
  95. package/dist/engine/observerToken.js.map +1 -0
  96. package/dist/engine/search.d.ts +4 -0
  97. package/dist/engine/search.d.ts.map +1 -1
  98. package/dist/engine/search.js +6 -1
  99. package/dist/engine/search.js.map +1 -1
  100. package/dist/engine/thread.d.ts +4 -3
  101. package/dist/engine/thread.d.ts.map +1 -1
  102. package/dist/engine/thread.js +45 -17
  103. package/dist/engine/thread.js.map +1 -1
  104. package/dist/engine/wsAuth.d.ts +32 -0
  105. package/dist/engine/wsAuth.d.ts.map +1 -0
  106. package/dist/engine/wsAuth.js +65 -0
  107. package/dist/engine/wsAuth.js.map +1 -0
  108. package/dist/engine/wsTransform.d.ts.map +1 -1
  109. package/dist/engine/wsTransform.js +52 -36
  110. package/dist/engine/wsTransform.js.map +1 -1
  111. package/dist/engine.d.ts.map +1 -1
  112. package/dist/engine.js +37 -86
  113. package/dist/engine.js.map +1 -1
  114. package/dist/entrypoints/node.d.ts.map +1 -1
  115. package/dist/entrypoints/node.js +20 -57
  116. package/dist/entrypoints/node.js.map +1 -1
  117. package/dist/env.d.ts +3 -1
  118. package/dist/env.d.ts.map +1 -1
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +5 -0
  122. package/dist/index.js.map +1 -1
  123. package/dist/lib/httpError.d.ts +5 -1
  124. package/dist/lib/httpError.d.ts.map +1 -1
  125. package/dist/lib/httpError.js +5 -2
  126. package/dist/lib/httpError.js.map +1 -1
  127. package/dist/lib/httpQuery.d.ts +28 -0
  128. package/dist/lib/httpQuery.d.ts.map +1 -0
  129. package/dist/lib/httpQuery.js +32 -0
  130. package/dist/lib/httpQuery.js.map +1 -0
  131. package/dist/lib/httpResponse.d.ts +15 -2
  132. package/dist/lib/httpResponse.d.ts.map +1 -1
  133. package/dist/lib/httpResponse.js +35 -7
  134. package/dist/lib/httpResponse.js.map +1 -1
  135. package/dist/middleware/auth.d.ts +8 -0
  136. package/dist/middleware/auth.d.ts.map +1 -1
  137. package/dist/middleware/auth.js +65 -2
  138. package/dist/middleware/auth.js.map +1 -1
  139. package/dist/middleware/idempotency.d.ts +30 -0
  140. package/dist/middleware/idempotency.d.ts.map +1 -1
  141. package/dist/middleware/idempotency.js +14 -0
  142. package/dist/middleware/idempotency.js.map +1 -1
  143. package/dist/middleware/logger.d.ts.map +1 -1
  144. package/dist/middleware/logger.js +4 -4
  145. package/dist/middleware/logger.js.map +1 -1
  146. package/dist/middleware/planLimits.d.ts.map +1 -1
  147. package/dist/middleware/planLimits.js +11 -9
  148. package/dist/middleware/planLimits.js.map +1 -1
  149. package/dist/middleware/rateLimit.d.ts.map +1 -1
  150. package/dist/middleware/rateLimit.js +15 -8
  151. package/dist/middleware/rateLimit.js.map +1 -1
  152. package/dist/middleware/usageTracker.d.ts.map +1 -1
  153. package/dist/middleware/usageTracker.js +2 -1
  154. package/dist/middleware/usageTracker.js.map +1 -1
  155. package/dist/ports/auth.d.ts +6 -2
  156. package/dist/ports/auth.d.ts.map +1 -1
  157. package/dist/ports/entitlements.d.ts +3 -1
  158. package/dist/ports/entitlements.d.ts.map +1 -1
  159. package/dist/ports/index.d.ts +0 -14
  160. package/dist/ports/index.d.ts.map +1 -1
  161. package/dist/ports/realtime.d.ts +4 -1
  162. package/dist/ports/realtime.d.ts.map +1 -1
  163. package/dist/providers/static-entitlements.js +4 -4
  164. package/dist/providers/static-entitlements.js.map +1 -1
  165. package/dist/routes/a2a.d.ts.map +1 -1
  166. package/dist/routes/a2a.js +41 -83
  167. package/dist/routes/a2a.js.map +1 -1
  168. package/dist/routes/action.d.ts.map +1 -1
  169. package/dist/routes/action.js +45 -42
  170. package/dist/routes/action.js.map +1 -1
  171. package/dist/routes/agent.d.ts.map +1 -1
  172. package/dist/routes/agent.js +172 -120
  173. package/dist/routes/agent.js.map +1 -1
  174. package/dist/routes/certify.d.ts.map +1 -1
  175. package/dist/routes/certify.js +21 -35
  176. package/dist/routes/certify.js.map +1 -1
  177. package/dist/routes/channel.d.ts.map +1 -1
  178. package/dist/routes/channel.js +69 -81
  179. package/dist/routes/channel.js.map +1 -1
  180. package/dist/routes/console.d.ts.map +1 -1
  181. package/dist/routes/console.js +60 -40
  182. package/dist/routes/console.js.map +1 -1
  183. package/dist/routes/delivery.d.ts.map +1 -1
  184. package/dist/routes/delivery.js +22 -54
  185. package/dist/routes/delivery.js.map +1 -1
  186. package/dist/routes/deliveryRouting.d.ts +6 -0
  187. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  188. package/dist/routes/deliveryRouting.js +297 -34
  189. package/dist/routes/deliveryRouting.js.map +1 -1
  190. package/dist/routes/directory.d.ts.map +1 -1
  191. package/dist/routes/directory.js +47 -63
  192. package/dist/routes/directory.js.map +1 -1
  193. package/dist/routes/dm.d.ts.map +1 -1
  194. package/dist/routes/dm.js +21 -42
  195. package/dist/routes/dm.js.map +1 -1
  196. package/dist/routes/fanout.d.ts +2 -1
  197. package/dist/routes/fanout.d.ts.map +1 -1
  198. package/dist/routes/fanout.js +38 -20
  199. package/dist/routes/fanout.js.map +1 -1
  200. package/dist/routes/file.d.ts.map +1 -1
  201. package/dist/routes/file.js +48 -44
  202. package/dist/routes/file.js.map +1 -1
  203. package/dist/routes/groupDm.d.ts.map +1 -1
  204. package/dist/routes/groupDm.js +23 -48
  205. package/dist/routes/groupDm.js.map +1 -1
  206. package/dist/routes/inboundWebhook.d.ts.map +1 -1
  207. package/dist/routes/inboundWebhook.js +17 -35
  208. package/dist/routes/inboundWebhook.js.map +1 -1
  209. package/dist/routes/inbox.d.ts.map +1 -1
  210. package/dist/routes/inbox.js +2 -1
  211. package/dist/routes/inbox.js.map +1 -1
  212. package/dist/routes/message.d.ts.map +1 -1
  213. package/dist/routes/message.js +60 -53
  214. package/dist/routes/message.js.map +1 -1
  215. package/dist/routes/node.d.ts.map +1 -1
  216. package/dist/routes/node.js +173 -10
  217. package/dist/routes/node.js.map +1 -1
  218. package/dist/routes/observerToken.d.ts +4 -0
  219. package/dist/routes/observerToken.d.ts.map +1 -0
  220. package/dist/routes/observerToken.js +105 -0
  221. package/dist/routes/observerToken.js.map +1 -0
  222. package/dist/routes/presence.d.ts.map +1 -1
  223. package/dist/routes/presence.js +10 -6
  224. package/dist/routes/presence.js.map +1 -1
  225. package/dist/routes/reaction.d.ts.map +1 -1
  226. package/dist/routes/reaction.js +69 -28
  227. package/dist/routes/reaction.js.map +1 -1
  228. package/dist/routes/receipt.d.ts.map +1 -1
  229. package/dist/routes/receipt.js +20 -3
  230. package/dist/routes/receipt.js.map +1 -1
  231. package/dist/routes/routing.d.ts.map +1 -1
  232. package/dist/routes/routing.js +38 -51
  233. package/dist/routes/routing.js.map +1 -1
  234. package/dist/routes/search.d.ts.map +1 -1
  235. package/dist/routes/search.js +21 -15
  236. package/dist/routes/search.js.map +1 -1
  237. package/dist/routes/thread.d.ts.map +1 -1
  238. package/dist/routes/thread.js +36 -37
  239. package/dist/routes/thread.js.map +1 -1
  240. package/dist/routes/workspace.d.ts.map +1 -1
  241. package/dist/routes/workspace.js +57 -225
  242. package/dist/routes/workspace.js.map +1 -1
  243. package/package.json +3 -3
  244. package/dist/lib/fleetNodes.d.ts +0 -9
  245. package/dist/lib/fleetNodes.d.ts.map +0 -1
  246. package/dist/lib/fleetNodes.js +0 -66
  247. package/dist/lib/fleetNodes.js.map +0 -1
  248. package/dist/lib/workspaceStream.d.ts +0 -9
  249. package/dist/lib/workspaceStream.d.ts.map +0 -1
  250. package/dist/lib/workspaceStream.js +0 -53
  251. package/dist/lib/workspaceStream.js.map +0 -1
  252. package/dist/middleware/fleetNodes.d.ts +0 -10
  253. package/dist/middleware/fleetNodes.d.ts.map +0 -1
  254. package/dist/middleware/fleetNodes.js +0 -18
  255. package/dist/middleware/fleetNodes.js.map +0 -1
@@ -1,16 +1,22 @@
1
1
  import { Hono } from 'hono';
2
2
  import { z } from 'zod';
3
3
  import { AgentTypeSchema, CliTypeSchema } from '@relaycast/types';
4
- import { requireWorkspaceKey, requireAuth, requireAgentToken } from '../middleware/auth.js';
4
+ import { requireWorkspaceKey, requireAuth, requireAgentToken, requireWorkspaceRead } from '../middleware/auth.js';
5
5
  import { rateLimit } from '../middleware/rateLimit.js';
6
6
  import * as agentEngine from '../engine/agent.js';
7
+ import * as nodeEngine from '../engine/node.js';
8
+ import * as actionEngine from '../engine/action.js';
7
9
  import * as directoryEngine from '../engine/directory.js';
8
10
  import * as sessionEventEngine from '../engine/sessionEvent.js';
11
+ import { getObserverTokenFromContext, observerAllowsAgent, observerAllowsCreatedAt, } from '../engine/observerToken.js';
9
12
  import { fanoutToWorkspace } from './fanout.js';
13
+ import { sendNodePresenceContext } from '../engine/nodeContext.js';
10
14
  import { runInBackground } from './background.js';
11
15
  import { sendWebhookEvent } from './webhookOutbox.js';
12
16
  import { emitServerEvent } from '../lib/serverTelemetry.js';
13
17
  import { errorResponse } from '../lib/httpError.js';
18
+ import { jsonCreated, jsonError, jsonNoContent, jsonNotFound, jsonOk, parseJsonBody, parseQueryParams, } from '../lib/httpResponse.js';
19
+ import { positiveIntQueryParam } from '../lib/httpQuery.js';
14
20
  export const agentRoutes = new Hono();
15
21
  const skillSchema = z.object({
16
22
  id: z.string().min(1).optional(),
@@ -54,6 +60,10 @@ const releaseAgentSchema = z.object({
54
60
  reason: z.string().nullable().optional(),
55
61
  delete_agent: z.boolean().optional(),
56
62
  });
63
+ const listSessionEventsQuerySchema = z.object({
64
+ type: z.string().optional(),
65
+ limit: positiveIntQueryParam({ defaultValue: 100, max: 500 }),
66
+ });
57
67
  function canonicalStatus(status) {
58
68
  if (status === 'online')
59
69
  return 'active';
@@ -62,6 +72,9 @@ function canonicalStatus(status) {
62
72
  }
63
73
  return null;
64
74
  }
75
+ function agentNotFound(c, name) {
76
+ return jsonNotFound(c, 'agent_not_found', `Agent "${name}" not found`);
77
+ }
65
78
  async function fanoutAgentStatus(c, agent, status, eventId) {
66
79
  const nextStatus = canonicalStatus(status);
67
80
  if (!nextStatus)
@@ -74,6 +87,12 @@ async function fanoutAgentStatus(c, agent, status, eventId) {
74
87
  ...(eventId ? { event_id: eventId } : {}),
75
88
  };
76
89
  runInBackground(c, fanoutToWorkspace(c, eventType, eventData), `fanout ${eventType}`);
90
+ runInBackground(c, sendNodePresenceContext({
91
+ db: c.get('db'),
92
+ nodeConnections: c.get('engine').nodeConnections,
93
+ realtime: c.get('engine').realtime,
94
+ workspaceId: c.get('workspace').id,
95
+ }, { subjectAgentId: agent.id, event: eventType, data: eventData }), `node context ${eventType}`);
77
96
  await sendWebhookEvent(c, {
78
97
  type: eventType,
79
98
  workspaceId: c.get('workspace').id,
@@ -88,12 +107,45 @@ agentRoutes.get('/agent', requireAgentToken, rateLimit, async (c) => {
88
107
  const authAgent = c.get('agent');
89
108
  const agent = await agentEngine.getAgentByName(db, workspace.id, authAgent.name);
90
109
  if (!agent) {
91
- return c.json({
92
- ok: false,
93
- error: { code: 'agent_not_found', message: 'Authenticated agent not found' },
94
- }, 404);
110
+ return jsonNotFound(c, 'agent_not_found', 'Authenticated agent not found');
95
111
  }
96
- return c.json({ ok: true, data: agent });
112
+ return jsonOk(c, agent);
113
+ }
114
+ catch (err) {
115
+ return errorResponse(c, err);
116
+ }
117
+ });
118
+ // POST /v1/agent/node-token - mint the authenticated agent's direct node token
119
+ agentRoutes.post('/agent/node-token', requireAgentToken, rateLimit, async (c) => {
120
+ try {
121
+ const db = c.get('db');
122
+ const workspace = c.get('workspace');
123
+ const authAgent = c.get('agent');
124
+ const directNode = await nodeEngine.ensureDirectNodeForAgent(db, workspace.id, authAgent, { online: false });
125
+ if (!directNode) {
126
+ return jsonError(c, 'agent_bound_to_node', 'Agent is explicitly bound to another node', 409);
127
+ }
128
+ const nodeWithToken = await nodeEngine.createNodeToken(db, workspace.id, {
129
+ node_id: directNode.id,
130
+ name: directNode.name,
131
+ kind: 'ws',
132
+ role: 'direct',
133
+ delivery_adapter: 'ws.node.v1',
134
+ delivery: {
135
+ implicit: true,
136
+ agent_id: authAgent.id,
137
+ agent_name: authAgent.name,
138
+ },
139
+ capabilities: [],
140
+ max_agents: 1,
141
+ tags: ['implicit', 'direct'],
142
+ version: 'implicit',
143
+ });
144
+ return jsonOk(c, {
145
+ node_id: nodeWithToken.id,
146
+ node_name: nodeWithToken.name,
147
+ token: nodeWithToken.token,
148
+ });
97
149
  }
98
150
  catch (err) {
99
151
  return errorResponse(c, err);
@@ -104,12 +156,9 @@ agentRoutes.post('/agents', requireWorkspaceKey, rateLimit, async (c) => {
104
156
  try {
105
157
  const db = c.get('db');
106
158
  const workspace = c.get('workspace');
107
- const parsed = registerAgentSchema.safeParse(await c.req.json());
108
- if (!parsed.success) {
109
- return c.json({
110
- ok: false,
111
- error: { code: 'invalid_request', message: 'name is required' },
112
- }, 400);
159
+ const parsed = await parseJsonBody(c, registerAgentSchema, 'name is required');
160
+ if (!parsed.ok) {
161
+ return parsed.response;
113
162
  }
114
163
  const { name, type, persona, metadata, skills, capabilities } = parsed.data;
115
164
  const nextMetadata = {
@@ -136,39 +185,41 @@ agentRoutes.post('/agents', requireWorkspaceKey, rateLimit, async (c) => {
136
185
  agent_name: result.name,
137
186
  agent_type: type ?? 'agent',
138
187
  });
139
- return c.json({ ok: true, data: result }, 201);
188
+ return jsonCreated(c, result);
140
189
  }
141
190
  catch (err) {
142
191
  return errorResponse(c, err);
143
192
  }
144
193
  });
145
194
  // GET /v1/agents - list agents
146
- agentRoutes.get('/agents', requireWorkspaceKey, rateLimit, async (c) => {
195
+ agentRoutes.get('/agents', requireWorkspaceRead('agents:read', { allowAgent: false, allowNode: false }), rateLimit, async (c) => {
147
196
  try {
148
197
  const db = c.get('db');
149
198
  const workspace = c.get('workspace');
150
199
  const status = c.req.query('status');
151
- const agents = await agentEngine.listAgents(db, workspace.id, status);
152
- return c.json({ ok: true, data: agents });
200
+ const observer = getObserverTokenFromContext(c);
201
+ const agents = (await agentEngine.listAgents(db, workspace.id, status))
202
+ .filter((agent) => observerAllowsAgent(observer, agent.id));
203
+ return jsonOk(c, agents);
153
204
  }
154
205
  catch (err) {
155
206
  return errorResponse(c, err);
156
207
  }
157
208
  });
158
209
  // GET /v1/agents/:name - get agent by name
159
- agentRoutes.get('/agents/:name', requireWorkspaceKey, rateLimit, async (c) => {
210
+ agentRoutes.get('/agents/:name', requireWorkspaceRead('agents:read', { allowAgent: false, allowNode: false }), rateLimit, async (c) => {
160
211
  try {
161
212
  const db = c.get('db');
162
213
  const workspace = c.get('workspace');
163
214
  const name = c.req.param('name');
164
215
  const agent = await agentEngine.getAgentByName(db, workspace.id, name);
165
216
  if (!agent) {
166
- return c.json({
167
- ok: false,
168
- error: { code: 'agent_not_found', message: `Agent "${name}" not found` },
169
- }, 404);
217
+ return agentNotFound(c, name);
170
218
  }
171
- return c.json({ ok: true, data: agent });
219
+ if (!observerAllowsAgent(getObserverTokenFromContext(c), agent.id)) {
220
+ return agentNotFound(c, name);
221
+ }
222
+ return jsonOk(c, agent);
172
223
  }
173
224
  catch (err) {
174
225
  return errorResponse(c, err);
@@ -180,19 +231,13 @@ agentRoutes.patch('/agents/:name', requireWorkspaceKey, rateLimit, async (c) =>
180
231
  const db = c.get('db');
181
232
  const workspace = c.get('workspace');
182
233
  const name = c.req.param('name');
183
- const parsed = updateAgentSchema.safeParse(await c.req.json());
184
- if (!parsed.success) {
185
- return c.json({
186
- ok: false,
187
- error: { code: 'invalid_request', message: 'invalid agent update body' },
188
- }, 400);
234
+ const parsed = await parseJsonBody(c, updateAgentSchema, 'invalid agent update body');
235
+ if (!parsed.ok) {
236
+ return parsed.response;
189
237
  }
190
238
  const existing = await agentEngine.getAgentByName(db, workspace.id, name);
191
239
  if (!existing) {
192
- return c.json({
193
- ok: false,
194
- error: { code: 'agent_not_found', message: `Agent "${name}" not found` },
195
- }, 404);
240
+ return agentNotFound(c, name);
196
241
  }
197
242
  const body = parsed.data;
198
243
  const nextMetadata = body.metadata !== undefined || body.skills !== undefined
@@ -209,10 +254,7 @@ agentRoutes.patch('/agents/:name', requireWorkspaceKey, rateLimit, async (c) =>
209
254
  capabilities: body.capabilities,
210
255
  });
211
256
  if (!updated) {
212
- return c.json({
213
- ok: false,
214
- error: { code: 'agent_not_found', message: `Agent "${name}" not found` },
215
- }, 404);
257
+ return agentNotFound(c, name);
216
258
  }
217
259
  if (body.metadata !== undefined || body.skills !== undefined || body.status !== undefined) {
218
260
  await directoryEngine.syncSourceAgentDirectoryEntry(db, workspace.id, {
@@ -230,7 +272,7 @@ agentRoutes.patch('/agents/:name', requireWorkspaceKey, rateLimit, async (c) =>
230
272
  changed_status: typeof body?.status === 'string',
231
273
  changed_persona: typeof body?.persona === 'string',
232
274
  });
233
- return c.json({ ok: true, data: updated });
275
+ return jsonOk(c, updated);
234
276
  }
235
277
  catch (err) {
236
278
  return errorResponse(c, err);
@@ -244,75 +286,72 @@ agentRoutes.delete('/agents/:name', requireWorkspaceKey, rateLimit, async (c) =>
244
286
  const name = c.req.param('name');
245
287
  const deleted = await agentEngine.deleteAgent(db, workspace.id, name);
246
288
  if (!deleted) {
247
- return c.json({
248
- ok: false,
249
- error: { code: 'agent_not_found', message: `Agent "${name}" not found` },
250
- }, 404);
289
+ return agentNotFound(c, name);
251
290
  }
252
291
  emitServerEvent(c, workspace.id, 'relaycast_server_agent_deleted', {
253
292
  agent_name: name,
254
293
  });
255
- return c.body(null, 204);
294
+ return jsonNoContent(c);
256
295
  }
257
296
  catch (err) {
258
297
  return errorResponse(c, err);
259
298
  }
260
299
  });
261
- // POST /v1/agents/spawn - spawn agent (registers if new, rotates token if exists)
262
- agentRoutes.post('/agents/spawn', requireWorkspaceKey, rateLimit, async (c) => {
300
+ // POST /v1/agents/spawn - request a node to spawn an agent
301
+ agentRoutes.post('/agents/spawn', requireAuth, rateLimit, async (c) => {
263
302
  try {
264
303
  const db = c.get('db');
265
304
  const workspace = c.get('workspace');
266
- const parsed = spawnAgentSchema.safeParse(await c.req.json());
267
- if (!parsed.success) {
268
- const hasNameIssue = parsed.error.issues.some((issue) => issue.path[0] === 'name');
269
- const hasCliIssue = parsed.error.issues.some((issue) => issue.path[0] === 'cli');
270
- const hasTaskIssue = parsed.error.issues.some((issue) => issue.path[0] === 'task');
271
- const message = hasNameIssue
305
+ const callerAgent = c.get('agent');
306
+ const callerNode = c.get('node');
307
+ const parsed = await parseJsonBody(c, spawnAgentSchema, (failure) => {
308
+ const hasNameIssue = failure.error.issues.some((issue) => issue.path[0] === 'name');
309
+ const hasCliIssue = failure.error.issues.some((issue) => issue.path[0] === 'cli');
310
+ const hasTaskIssue = failure.error.issues.some((issue) => issue.path[0] === 'task');
311
+ return hasNameIssue
272
312
  ? 'name is required'
273
313
  : hasCliIssue
274
314
  ? `cli must be one of: ${CliTypeSchema.options.join(', ')}`
275
315
  : hasTaskIssue
276
316
  ? 'task is required'
277
317
  : 'invalid spawn request';
278
- return c.json({
279
- ok: false,
280
- error: { code: 'invalid_request', message },
281
- }, 400);
318
+ });
319
+ if (!parsed.ok) {
320
+ return parsed.response;
282
321
  }
283
322
  const { name, cli, task, channel, persona, model, metadata } = parsed.data;
284
- const result = await agentEngine.spawnAgent(db, workspace.id, {
323
+ const input = {
285
324
  name,
286
325
  cli,
287
326
  task,
288
- channel: channel ?? undefined,
289
- persona: persona ?? undefined,
290
- // Persist the requested model into agent metadata so it is visible via
291
- // list_agents, in addition to being emitted on the spawn event below.
292
- metadata: model ? { ...(metadata ?? {}), model } : metadata,
293
- });
294
- const spawnEventData = {
295
- agent_id: result.id,
296
- agent_name: result.name,
297
- cli: result.cli,
298
- task: result.task,
299
- channel: result.channel,
327
+ channel: channel ?? null,
328
+ persona: persona ?? null,
300
329
  model: model ?? null,
301
- already_existed: result.already_existed,
330
+ metadata: model ? { ...(metadata ?? {}), model } : metadata ?? {},
331
+ };
332
+ const result = await actionEngine.invokeAction(db, workspace.id, 'spawn', {
333
+ input,
334
+ caller_id: callerAgent?.id,
335
+ caller_name: callerAgent?.name ?? callerNode?.name ?? 'workspace',
336
+ }, { nodeConnections: c.get('engine').nodeConnections });
337
+ const eventData = {
338
+ invocation_id: result.invocation_id,
339
+ action_name: result.action_name,
340
+ caller_name: callerAgent?.name ?? callerNode?.name ?? 'workspace',
341
+ handler_agent_id: result.handler_agent_id,
342
+ handler_node_id: result.handler_node_id,
302
343
  };
303
- runInBackground(c, fanoutToWorkspace(c, 'agent.spawn_requested', spawnEventData), 'fanout agent.spawn_requested');
304
344
  await sendWebhookEvent(c, {
305
- type: 'agent.spawn_requested',
345
+ type: 'action.invoked',
306
346
  workspaceId: workspace.id,
307
- data: spawnEventData,
347
+ data: eventData,
308
348
  });
309
- emitServerEvent(c, workspace.id, 'relaycast_server_agent_spawn_requested', {
310
- agent_id: result.id,
311
- agent_name: result.name,
312
- cli: result.cli,
313
- already_existed: result.already_existed,
349
+ emitServerEvent(c, workspace.id, 'relaycast_server_action_invoked', {
350
+ action_name: result.action_name,
351
+ invocation_id: result.invocation_id,
352
+ caller_agent_id: callerAgent?.id ?? null,
314
353
  });
315
- return c.json({ ok: true, data: result }, (result.already_existed ? 200 : 201));
354
+ return jsonCreated(c, result);
316
355
  }
317
356
  catch (err) {
318
357
  return errorResponse(c, err);
@@ -324,22 +363,22 @@ agentRoutes.post('/agents/:name/events', requireAuth, rateLimit, async (c) => {
324
363
  const db = c.get('db');
325
364
  const workspace = c.get('workspace');
326
365
  const name = c.req.param('name');
327
- const parsed = sessionEventSchema.safeParse(await c.req.json());
328
- if (!parsed.success) {
329
- return c.json({ ok: false, error: { code: 'invalid_request', message: 'type is required' } }, 400);
366
+ const parsed = await parseJsonBody(c, sessionEventSchema, 'type is required');
367
+ if (!parsed.ok) {
368
+ return parsed.response;
330
369
  }
331
370
  const { type, payload } = parsed.data;
332
371
  if (!sessionEventEngine.isValidEventType(type)) {
333
- return c.json({ ok: false, error: { code: 'invalid_event_type', message: `Unknown event type: ${type}` } }, 400);
372
+ return jsonError(c, 'invalid_event_type', `Unknown event type: ${type}`, 400);
334
373
  }
335
374
  const agentRecord = await agentEngine.getAgentByName(db, workspace.id, name);
336
375
  if (!agentRecord) {
337
- return c.json({ ok: false, error: { code: 'agent_not_found', message: `Agent "${name}" not found` } }, 404);
376
+ return agentNotFound(c, name);
338
377
  }
339
378
  // Agent tokens may only post events for themselves
340
379
  const callerAgent = c.get('agent');
341
380
  if (callerAgent && callerAgent.id !== agentRecord.id) {
342
- return c.json({ ok: false, error: { code: 'forbidden', message: 'Agent token can only post events for itself' } }, 403);
381
+ return jsonError(c, 'forbidden', 'Agent token can only post events for itself', 403);
343
382
  }
344
383
  // Validate status events before writing — reject early so no orphan row is created
345
384
  const VALID_STATUSES = new Set(['active', 'idle', 'blocked', 'waiting', 'offline', 'online']);
@@ -348,10 +387,10 @@ agentRoutes.post('/agents/:name/events', requireAuth, rateLimit, async (c) => {
348
387
  const fromPayload = typeof payload.status === 'string' ? payload.status : undefined;
349
388
  const newStatus = resolved ?? fromPayload;
350
389
  if (!newStatus) {
351
- return c.json({ ok: false, error: { code: 'invalid_request', message: 'status.changed event requires payload.status' } }, 400);
390
+ return jsonError(c, 'invalid_request', 'status.changed event requires payload.status', 400);
352
391
  }
353
392
  if (!VALID_STATUSES.has(newStatus)) {
354
- return c.json({ ok: false, error: { code: 'invalid_request', message: `Invalid status value: "${newStatus}". Must be one of: ${[...VALID_STATUSES].join(', ')}` } }, 400);
393
+ return jsonError(c, 'invalid_request', `Invalid status value: "${newStatus}". Must be one of: ${[...VALID_STATUSES].join(', ')}`, 400);
355
394
  }
356
395
  }
357
396
  const event = await sessionEventEngine.recordSessionEvent(db, workspace.id, agentRecord.id, {
@@ -372,6 +411,12 @@ agentRoutes.post('/agents/:name/events', requireAuth, rateLimit, async (c) => {
372
411
  payload,
373
412
  };
374
413
  runInBackground(c, fanoutToWorkspace(c, eventType, eventData), `fanout ${eventType}`);
414
+ runInBackground(c, sendNodePresenceContext({
415
+ db,
416
+ nodeConnections: c.get('engine').nodeConnections,
417
+ realtime: c.get('engine').realtime,
418
+ workspaceId: workspace.id,
419
+ }, { subjectAgentId: agentRecord.id, event: eventType, data: eventData }), `node context ${eventType}`);
375
420
  await sendWebhookEvent(c, {
376
421
  type: eventType,
377
422
  workspaceId: workspace.id,
@@ -388,74 +433,81 @@ agentRoutes.post('/agents/:name/events', requireAuth, rateLimit, async (c) => {
388
433
  data: eventData,
389
434
  });
390
435
  }
391
- return c.json({ ok: true, data: event }, 201);
436
+ return jsonCreated(c, event);
392
437
  }
393
438
  catch (err) {
394
439
  return errorResponse(c, err);
395
440
  }
396
441
  });
397
442
  // GET /v1/agents/:name/events - list session events for an agent
398
- agentRoutes.get('/agents/:name/events', requireWorkspaceKey, rateLimit, async (c) => {
443
+ agentRoutes.get('/agents/:name/events', requireWorkspaceRead('activity:read', { allowAgent: false, allowNode: false }), rateLimit, async (c) => {
399
444
  try {
400
445
  const db = c.get('db');
401
446
  const workspace = c.get('workspace');
402
447
  const name = c.req.param('name');
403
- const type = c.req.query('type');
404
- const limit = Math.min(parseInt(c.req.query('limit') ?? '100', 10), 500);
448
+ const parsed = parseQueryParams(c, listSessionEventsQuerySchema, 'Invalid agent event query');
449
+ if (!parsed.ok) {
450
+ return parsed.response;
451
+ }
452
+ const { type, limit } = parsed.data;
405
453
  const agent = await agentEngine.getAgentByName(db, workspace.id, name);
406
454
  if (!agent) {
407
- return c.json({ ok: false, error: { code: 'agent_not_found', message: `Agent "${name}" not found` } }, 404);
455
+ return agentNotFound(c, name);
456
+ }
457
+ const observer = getObserverTokenFromContext(c);
458
+ if (!observerAllowsAgent(observer, agent.id)) {
459
+ return agentNotFound(c, name);
408
460
  }
409
461
  const events = await sessionEventEngine.listSessionEvents(db, workspace.id, agent.id, {
410
462
  type,
411
463
  limit,
412
464
  });
413
- return c.json({ ok: true, data: events });
465
+ return jsonOk(c, events.filter((event) => observerAllowsCreatedAt(observer, event.created_at)));
414
466
  }
415
467
  catch (err) {
416
468
  return errorResponse(c, err);
417
469
  }
418
470
  });
419
- // POST /v1/agents/release - release (mark offline) or delete an agent
420
- agentRoutes.post('/agents/release', requireWorkspaceKey, rateLimit, async (c) => {
471
+ // POST /v1/agents/release - request a node to release an agent
472
+ agentRoutes.post('/agents/release', requireAuth, rateLimit, async (c) => {
421
473
  try {
422
474
  const db = c.get('db');
423
475
  const workspace = c.get('workspace');
424
- const parsed = releaseAgentSchema.safeParse(await c.req.json());
425
- if (!parsed.success) {
426
- return c.json({
427
- ok: false,
428
- error: { code: 'invalid_request', message: 'name is required' },
429
- }, 400);
476
+ const callerAgent = c.get('agent');
477
+ const callerNode = c.get('node');
478
+ const parsed = await parseJsonBody(c, releaseAgentSchema, 'name is required');
479
+ if (!parsed.ok) {
480
+ return parsed.response;
430
481
  }
431
482
  const { name, reason, delete_agent } = parsed.data;
432
- const result = await agentEngine.releaseAgent(db, workspace.id, {
483
+ const input = {
433
484
  name,
434
- reason: reason ?? undefined,
435
- delete_agent,
436
- });
437
- if (!result) {
438
- return c.json({
439
- ok: false,
440
- error: { code: 'agent_not_found', message: `Agent "${name}" not found` },
441
- }, 404);
442
- }
443
- const releaseEventData = {
444
- agent_name: result.name,
445
- reason: result.reason ?? null,
446
- deleted: result.deleted,
485
+ reason: reason ?? null,
486
+ delete_agent: delete_agent === true,
487
+ };
488
+ const result = await actionEngine.invokeAction(db, workspace.id, 'release', {
489
+ input,
490
+ caller_id: callerAgent?.id,
491
+ caller_name: callerAgent?.name ?? callerNode?.name ?? 'workspace',
492
+ }, { nodeConnections: c.get('engine').nodeConnections });
493
+ const eventData = {
494
+ invocation_id: result.invocation_id,
495
+ action_name: result.action_name,
496
+ caller_name: callerAgent?.name ?? callerNode?.name ?? 'workspace',
497
+ handler_agent_id: result.handler_agent_id,
498
+ handler_node_id: result.handler_node_id,
447
499
  };
448
- runInBackground(c, fanoutToWorkspace(c, 'agent.release_requested', releaseEventData), 'fanout agent.release_requested');
449
500
  await sendWebhookEvent(c, {
450
- type: 'agent.release_requested',
501
+ type: 'action.invoked',
451
502
  workspaceId: workspace.id,
452
- data: releaseEventData,
503
+ data: eventData,
453
504
  });
454
- emitServerEvent(c, workspace.id, 'relaycast_server_agent_release_requested', {
455
- agent_name: result.name,
456
- deleted: result.deleted,
505
+ emitServerEvent(c, workspace.id, 'relaycast_server_action_invoked', {
506
+ action_name: result.action_name,
507
+ invocation_id: result.invocation_id,
508
+ caller_agent_id: callerAgent?.id ?? null,
457
509
  });
458
- return c.json({ ok: true, data: result });
510
+ return jsonCreated(c, result);
459
511
  }
460
512
  catch (err) {
461
513
  return errorResponse(c, err);
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/routes/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/routes/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"certify.d.ts","sourceRoot":"","sources":["../../src/routes/certify.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"}
1
+ {"version":3,"file":"certify.d.ts","sourceRoot":"","sources":["../../src/routes/certify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAYxC,eAAO,MAAM,aAAa,qDAAqB,CAAC"}