@relaycast/engine 6.0.0 → 6.0.2

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.
@@ -7,6 +7,7 @@ import { runAtomic } from '../ports/database.js';
7
7
  import { generateId } from './snowflake.js';
8
8
  import { isNodeLive, nodeHasCapability } from './placement.js';
9
9
  import { DEFAULT_PROVIDER_NAME, capabilityKind, heartbeatProvider, markProviderOffline, materializeProviderActions, recomputeNodeAggregate, removeProvider, upsertProvider, } from './nodeProvider.js';
10
+ import { serializeNodeOp } from './nodeLock.js';
10
11
  import { completeNodeInvocation, dispatchCapacitySpawn, rescheduleInvocationsForLostNode, rescheduleNodeInvocation, } from './action.js';
11
12
  import { emitInvocationCompletionEffects } from './invocationCompletion.js';
12
13
  import { ackDeliveriesUpToSeq, deliverPendingToNode } from './delivery.js';
@@ -369,16 +370,21 @@ export async function markNodeOffline(db, registry, workspaceId, nodeId) {
369
370
  * When it was the node's last connection the whole node goes offline.
370
371
  */
371
372
  export async function handleProviderDisconnect(db, registry, workspaceId, nodeId, providerName, hasRemainingConnections) {
372
- if (!hasRemainingConnections) {
373
- await markNodeOffline(db, registry, workspaceId, nodeId);
374
- return;
375
- }
376
- await markProviderOffline(db, workspaceId, nodeId, providerName);
377
- await db
378
- .update(agents)
379
- .set({ status: 'offline', lastSeen: new Date() })
380
- .where(and(eq(agents.workspaceId, workspaceId), eq(agents.locationType, 'via_node'), eq(agents.locationNodeId, nodeId), eq(agents.providerName, providerName)));
381
- await recomputeNodeAggregate(db, workspaceId, nodeId);
373
+ // Serialized with node-control operations so a teardown can't race a
374
+ // concurrent register's provider upsert / aggregate recompute (or, on
375
+ // better-sqlite3, deadlock its isolated transaction).
376
+ return serializeNodeOp(workspaceId, nodeId, async () => {
377
+ if (!hasRemainingConnections) {
378
+ await markNodeOffline(db, registry, workspaceId, nodeId);
379
+ return;
380
+ }
381
+ await markProviderOffline(db, workspaceId, nodeId, providerName);
382
+ await db
383
+ .update(agents)
384
+ .set({ status: 'offline', lastSeen: new Date() })
385
+ .where(and(eq(agents.workspaceId, workspaceId), eq(agents.locationType, 'via_node'), eq(agents.locationNodeId, nodeId), eq(agents.providerName, providerName)));
386
+ await recomputeNodeAggregate(db, workspaceId, nodeId);
387
+ });
382
388
  }
383
389
  /**
384
390
  * Provider-scoped deregister: removes the provider's attachment, persisted
@@ -410,10 +416,24 @@ export async function deregisterProvider(db, registry, workspaceId, nodeId, prov
410
416
  export async function sweepOfflineNodes(db, registry) {
411
417
  const rows = await db.select().from(nodes).where(eq(nodes.status, 'online'));
412
418
  const stale = rows.filter((node) => !isNodeLive(node));
419
+ let swept = 0;
413
420
  for (const node of stale) {
414
- await markNodeOffline(db, registry, node.workspaceId, node.id);
421
+ const offlined = await serializeNodeOp(node.workspaceId, node.id, async () => {
422
+ // Re-read under the lock: a heartbeat/register queued ahead of this sweep
423
+ // may have refreshed the node since the stale snapshot was taken.
424
+ const [current] = await db
425
+ .select()
426
+ .from(nodes)
427
+ .where(and(eq(nodes.workspaceId, node.workspaceId), eq(nodes.id, node.id)));
428
+ if (!current || current.status !== 'online' || isNodeLive(current))
429
+ return false;
430
+ await markNodeOffline(db, registry, node.workspaceId, node.id);
431
+ return true;
432
+ });
433
+ if (offlined)
434
+ swept++;
415
435
  }
416
- return stale.length;
436
+ return swept;
417
437
  }
418
438
  async function autoJoinGeneral(db, workspaceId, agentId) {
419
439
  const [generalChannel] = await db
@@ -1071,6 +1091,11 @@ export async function handleNodeControlMessage(args) {
1071
1091
  // (heartbeat, deregister, agent.register, results) resolve it from the
1072
1092
  // connection. Absent a bound provider (or when driven without a registry
1073
1093
  // connection), fall back to the synthetic `default` provider.
1094
+ //
1095
+ // Resolve this at frame ARRIVAL, before entering the per-node queue: if the
1096
+ // socket closes while this frame is queued, `onNodeConnectionClose` clears the
1097
+ // connection's provider binding synchronously, and a lookup inside the callback
1098
+ // would then fall back to `default` and act on the wrong provider.
1074
1099
  const boundProviderName = args.connectionId
1075
1100
  ? args.registry.providerNameForConnection?.(args.connectionId)
1076
1101
  : undefined;
@@ -1080,127 +1105,146 @@ export async function handleNodeControlMessage(args) {
1080
1105
  const frameProviderName = boundProviderName
1081
1106
  ?? ('provider' in message && message.provider ? message.provider.name : undefined)
1082
1107
  ?? DEFAULT_PROVIDER_NAME;
1083
- try {
1084
- switch (message.type) {
1085
- case 'node.register': {
1086
- const provider = resolveProviderIdentity(message, args.connectionId);
1087
- if (args.connectionId && args.registry.providerAttachConflict) {
1088
- const conflict = args.registry.providerAttachConflict(args.workspaceId, args.nodeId, provider.name, provider.instance_id, args.connectionId);
1089
- if (conflict) {
1090
- throw codedError(conflict.message, conflict.code, 409);
1108
+ // Serialize all control operations for a node so a concurrent register and
1109
+ // teardown (or two providers attaching at once) can't race the duplicate
1110
+ // check, the provider-row upsert, or the aggregate recompute.
1111
+ return serializeNodeOp(args.workspaceId, args.nodeId, async () => {
1112
+ try {
1113
+ switch (message.type) {
1114
+ case 'node.register': {
1115
+ const provider = resolveProviderIdentity(message, args.connectionId);
1116
+ if (args.connectionId && args.registry.providerAttachConflict) {
1117
+ const conflict = args.registry.providerAttachConflict(args.workspaceId, args.nodeId, provider.name, provider.instance_id, args.connectionId);
1118
+ if (conflict) {
1119
+ throw codedError(conflict.message, conflict.code, 409);
1120
+ }
1091
1121
  }
1122
+ const registered = await registerNode(args.db, args.workspaceId, args.nodeId, message, provider);
1123
+ if (args.connectionId && args.registry.attachProvider) {
1124
+ args.registry.attachProvider(args.workspaceId, args.nodeId, provider.name, provider.instance_id, args.connectionId);
1125
+ }
1126
+ sendControl(args.socket, {
1127
+ v: 1,
1128
+ id: requestId(message),
1129
+ type: 'reply',
1130
+ ok: true,
1131
+ data: {
1132
+ ...registered.node,
1133
+ provider: registered.provider,
1134
+ accepted_capabilities: registered.acceptance,
1135
+ },
1136
+ });
1137
+ // Node is now marked online: flush any queued action.invoke frames so
1138
+ // spawns queued while it was offline can reserve capacity and dispatch.
1139
+ await args.registry.drainNode(args.workspaceId, args.nodeId);
1140
+ // The success reply was already sent above; keep the pending flush
1141
+ // best-effort so a delivery error cannot trigger a second error reply
1142
+ // for the same request id from the outer catch.
1143
+ await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId).catch(() => { });
1144
+ return;
1092
1145
  }
1093
- const registered = await registerNode(args.db, args.workspaceId, args.nodeId, message, provider);
1094
- if (args.connectionId && args.registry.attachProvider) {
1095
- args.registry.attachProvider(args.workspaceId, args.nodeId, provider.name, provider.instance_id, args.connectionId);
1146
+ case 'node.heartbeat':
1147
+ await heartbeatNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message);
1148
+ // Heartbeat refreshes online/capacity state; re-drain as a backstop in
1149
+ // case a queued spawn could not reserve capacity at register time.
1150
+ await args.registry.drainNode(args.workspaceId, args.nodeId);
1151
+ return;
1152
+ case 'node.deregister':
1153
+ await deregisterProvider(args.db, args.registry, args.workspaceId, args.nodeId, frameProviderName);
1154
+ return;
1155
+ case 'node.spawn': {
1156
+ // Handler-context `ctx.spawnAgent`: capacity-direct delegation to this
1157
+ // connection's own node capacity executor (the broker provider).
1158
+ // Bypasses action dispatch so a `spawn:<harness>` shadow handler cannot
1159
+ // re-enter itself. The target is always the connection's node — a node
1160
+ // credential cannot direct a spawn at another node.
1161
+ const result = await dispatchCapacitySpawn(args.db, args.workspaceId, {
1162
+ input: message.input,
1163
+ target_node_id: args.nodeId,
1164
+ }, { nodeConnections: args.registry });
1165
+ sendControl(args.socket, {
1166
+ v: 1,
1167
+ id: requestId(message),
1168
+ type: 'reply',
1169
+ ok: true,
1170
+ data: result,
1171
+ });
1172
+ return;
1096
1173
  }
1097
- sendControl(args.socket, {
1098
- v: 1,
1099
- id: requestId(message),
1100
- type: 'reply',
1101
- ok: true,
1102
- data: {
1103
- ...registered.node,
1104
- provider: registered.provider,
1105
- accepted_capabilities: registered.acceptance,
1106
- },
1107
- });
1108
- // Node is now marked online: flush any queued action.invoke frames so
1109
- // spawns queued while it was offline can reserve capacity and dispatch.
1110
- await args.registry.drainNode(args.workspaceId, args.nodeId);
1111
- // The success reply was already sent above; keep the pending flush
1112
- // best-effort so a delivery error cannot trigger a second error reply
1113
- // for the same request id from the outer catch.
1114
- await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId).catch(() => { });
1115
- return;
1116
- }
1117
- case 'node.heartbeat':
1118
- await heartbeatNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message);
1119
- // Heartbeat refreshes online/capacity state; re-drain as a backstop in
1120
- // case a queued spawn could not reserve capacity at register time.
1121
- await args.registry.drainNode(args.workspaceId, args.nodeId);
1122
- return;
1123
- case 'node.deregister':
1124
- await deregisterProvider(args.db, args.registry, args.workspaceId, args.nodeId, frameProviderName);
1125
- return;
1126
- case 'node.spawn': {
1127
- // Handler-context `ctx.spawnAgent`: capacity-direct delegation to this
1128
- // connection's own node capacity executor (the broker provider).
1129
- // Bypasses action dispatch so a `spawn:<harness>` shadow handler cannot
1130
- // re-enter itself. The target is always the connection's node — a node
1131
- // credential cannot direct a spawn at another node.
1132
- const result = await dispatchCapacitySpawn(args.db, args.workspaceId, {
1133
- input: message.input,
1134
- target_node_id: args.nodeId,
1135
- }, { nodeConnections: args.registry });
1136
- sendControl(args.socket, {
1137
- v: 1,
1138
- id: requestId(message),
1139
- type: 'reply',
1140
- ok: true,
1141
- data: result,
1142
- });
1143
- return;
1144
- }
1145
- case 'agent.register': {
1146
- const registered = await registerAgentViaNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message);
1147
- // The relay broker's node_control client awaits a `reply` frame keyed by
1148
- // the request id (it matches `pending_agent_registrations` by `reply.id`
1149
- // and parses `data` as {agent_id, token, name} with deny_unknown_fields).
1150
- // A bare `agent.registered` frame leaves the token-authority handshake
1151
- // hanging until the 30s timeout, so spawn never completes. Reply in the
1152
- // shape the shipped broker consumes; the broker already holds the
1153
- // invocation_id/session_ref it sent, so only the minted identity is echoed.
1154
- sendControl(args.socket, {
1155
- v: 1,
1156
- id: requestId(message),
1157
- type: 'reply',
1158
- ok: true,
1159
- data: { agent_id: registered.agent_id, token: registered.token, name: registered.name },
1160
- });
1161
- await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId);
1162
- return;
1163
- }
1164
- case 'agent.deregister':
1165
- await deregisterAgentViaNode(args.db, args.workspaceId, args.nodeId, message);
1166
- return;
1167
- case 'inventory.sync': {
1168
- const result = await reconcileInventory(args.db, args.registry, args.workspaceId, args.nodeId, message.agents, args.completionDeps);
1169
- sendControl(args.socket, {
1170
- v: 1,
1171
- id: requestId(message),
1172
- type: 'reply',
1173
- ok: true,
1174
- data: result,
1175
- });
1176
- await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId);
1177
- return;
1178
- }
1179
- case 'action.result': {
1180
- const completed = await completeNodeInvocation(args.db, args.registry, args.workspaceId, args.nodeId, message.invocation_id, {
1181
- ...(Object.prototype.hasOwnProperty.call(message, 'output') ? { output: message.output } : {}),
1182
- ...(message.error ? { error: message.error } : {}),
1183
- });
1184
- if (completed && args.completionDeps) {
1185
- await emitInvocationCompletionEffects(args.completionDeps, args.workspaceId, completed);
1174
+ case 'agent.register': {
1175
+ const registered = await registerAgentViaNode(args.db, args.workspaceId, args.nodeId, frameProviderName, message);
1176
+ // The relay broker's node_control client awaits a `reply` frame keyed by
1177
+ // the request id (it matches `pending_agent_registrations` by `reply.id`
1178
+ // and parses `data` as {agent_id, token, name} with deny_unknown_fields).
1179
+ // A bare `agent.registered` frame leaves the token-authority handshake
1180
+ // hanging until the 30s timeout, so spawn never completes. Reply in the
1181
+ // shape the shipped broker consumes; the broker already holds the
1182
+ // invocation_id/session_ref it sent, so only the minted identity is echoed.
1183
+ sendControl(args.socket, {
1184
+ v: 1,
1185
+ id: requestId(message),
1186
+ type: 'reply',
1187
+ ok: true,
1188
+ data: { agent_id: registered.agent_id, token: registered.token, name: registered.name },
1189
+ });
1190
+ await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId);
1191
+ return;
1192
+ }
1193
+ case 'agent.deregister':
1194
+ await deregisterAgentViaNode(args.db, args.workspaceId, args.nodeId, message);
1195
+ return;
1196
+ case 'inventory.sync': {
1197
+ const result = await reconcileInventory(args.db, args.registry, args.workspaceId, args.nodeId, message.agents, args.completionDeps);
1198
+ sendControl(args.socket, {
1199
+ v: 1,
1200
+ id: requestId(message),
1201
+ type: 'reply',
1202
+ ok: true,
1203
+ data: result,
1204
+ });
1205
+ await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId);
1206
+ return;
1186
1207
  }
1187
- return;
1208
+ case 'action.result': {
1209
+ const completed = await completeNodeInvocation(args.db, args.registry, args.workspaceId, args.nodeId, message.invocation_id, {
1210
+ ...(Object.prototype.hasOwnProperty.call(message, 'output') ? { output: message.output } : {}),
1211
+ ...(message.error ? { error: message.error } : {}),
1212
+ });
1213
+ if (completed && args.completionDeps) {
1214
+ await emitInvocationCompletionEffects(args.completionDeps, args.workspaceId, completed);
1215
+ }
1216
+ return;
1217
+ }
1218
+ case 'delivery.ack':
1219
+ await ackDeliveriesUpToSeq(args.db, args.workspaceId, args.nodeId, message.agent, message.up_to_seq);
1220
+ return;
1188
1221
  }
1189
- case 'delivery.ack':
1190
- await ackDeliveriesUpToSeq(args.db, args.workspaceId, args.nodeId, message.agent, message.up_to_seq);
1191
- return;
1192
1222
  }
1193
- }
1194
- catch (err) {
1195
- const error = err;
1196
- sendControl(args.socket, {
1197
- v: 1,
1198
- id: requestId(message),
1199
- type: 'error',
1200
- ok: false,
1201
- code: error.code ?? 'node_control_failed',
1202
- message: error.message,
1203
- });
1204
- }
1223
+ catch (err) {
1224
+ const error = err;
1225
+ const code = error.code ?? 'node_control_failed';
1226
+ // The rejection reaches the client only as the error frame below. Log it so
1227
+ // it is not invisible server-side: a rejected node.register/node.heartbeat
1228
+ // (e.g. node_name_conflict, a UNIQUE violation) otherwise leaves a node
1229
+ // running half-registered with no signal to operators. Warn, not error —
1230
+ // these are client/protocol rejections, not server faults.
1231
+ console.warn('[node.control] rejected message', {
1232
+ type: message.type,
1233
+ code,
1234
+ workspaceId: args.workspaceId,
1235
+ nodeId: args.nodeId,
1236
+ provider: frameProviderName,
1237
+ message: error.message,
1238
+ });
1239
+ sendControl(args.socket, {
1240
+ v: 1,
1241
+ id: requestId(message),
1242
+ type: 'error',
1243
+ ok: false,
1244
+ code,
1245
+ message: error.message,
1246
+ });
1247
+ }
1248
+ });
1205
1249
  }
1206
1250
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/engine/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/engine/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function serializeNodeOp<T>(workspaceId: string, nodeId: string, fn: () => Promise<T>): Promise<T>;
2
+ //# sourceMappingURL=nodeLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeLock.d.ts","sourceRoot":"","sources":["../../src/engine/nodeLock.ts"],"names":[],"mappings":"AAiBA,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAYxG"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Per-node serialization for node-control operations.
3
+ *
4
+ * Registration (duplicate-provider check + `node_providers` upsert + registry
5
+ * bind + node-aggregate recompute) and connection teardown both read and write
6
+ * the same shared node state (the provider rows and the `nodes` aggregate).
7
+ * `handleNodeControlMessage` and the socket-close path are async and would
8
+ * otherwise interleave for a single node, so two providers attaching at once can
9
+ * overwrite each other's row or clobber the aggregate, and on better-sqlite3 a
10
+ * register's isolated transaction can deadlock a concurrent teardown's write.
11
+ *
12
+ * All operations for one node run one-at-a-time through this queue. Keyed by
13
+ * `workspaceId:nodeId`, it is a no-op for callers that already serialize (a
14
+ * per-node Durable Object) and the ordering guarantee self-hosting needs.
15
+ */
16
+ const chains = new Map();
17
+ export function serializeNodeOp(workspaceId, nodeId, fn) {
18
+ // Collision-safe key: ids are free-form and may contain any separator, so
19
+ // encode the tuple rather than joining on a character.
20
+ const key = JSON.stringify([workspaceId, nodeId]);
21
+ const prev = chains.get(key) ?? Promise.resolve();
22
+ const run = prev.then(fn, fn);
23
+ const tail = run.then(() => undefined, () => undefined);
24
+ chains.set(key, tail);
25
+ void tail.finally(() => {
26
+ if (chains.get(key) === tail)
27
+ chains.delete(key);
28
+ });
29
+ return run;
30
+ }
31
+ //# sourceMappingURL=nodeLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeLock.js","sourceRoot":"","sources":["../../src/engine/nodeLock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEnD,MAAM,UAAU,eAAe,CAAI,WAAmB,EAAE,MAAc,EAAE,EAAoB;IAC1F,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}