@relaycast/engine 8.10.1 → 8.11.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 (63) hide show
  1. package/dist/adapters/node/kv.d.ts +1 -1
  2. package/dist/adapters/node/kv.d.ts.map +1 -1
  3. package/dist/adapters/node/kv.js +9 -4
  4. package/dist/adapters/node/kv.js.map +1 -1
  5. package/dist/adapters/node/rate-limit.d.ts.map +1 -1
  6. package/dist/adapters/node/rate-limit.js +10 -5
  7. package/dist/adapters/node/rate-limit.js.map +1 -1
  8. package/dist/db/migrations/0060_durable_task_invocations.sql +7 -0
  9. package/dist/db/migrations/0061_messages_workspace_length_id_index.sql +7 -0
  10. package/dist/db/schema.d.ts +51 -1
  11. package/dist/db/schema.d.ts.map +1 -1
  12. package/dist/db/schema.js +3 -0
  13. package/dist/db/schema.js.map +1 -1
  14. package/dist/engine/action.d.ts +30 -0
  15. package/dist/engine/action.d.ts.map +1 -1
  16. package/dist/engine/action.js +16 -1
  17. package/dist/engine/action.js.map +1 -1
  18. package/dist/engine/inbox.d.ts.map +1 -1
  19. package/dist/engine/inbox.js +73 -27
  20. package/dist/engine/inbox.js.map +1 -1
  21. package/dist/engine/node.d.ts +10 -0
  22. package/dist/engine/node.d.ts.map +1 -1
  23. package/dist/engine/node.js +20 -0
  24. package/dist/engine/node.js.map +1 -1
  25. package/dist/engine/nodeProvider.d.ts.map +1 -1
  26. package/dist/engine/nodeProvider.js +5 -1
  27. package/dist/engine/nodeProvider.js.map +1 -1
  28. package/dist/engine/taskInvocation.d.ts +110 -0
  29. package/dist/engine/taskInvocation.d.ts.map +1 -0
  30. package/dist/engine/taskInvocation.js +141 -0
  31. package/dist/engine/taskInvocation.js.map +1 -0
  32. package/dist/engine/usage.d.ts +17 -8
  33. package/dist/engine/usage.d.ts.map +1 -1
  34. package/dist/engine/usage.js +35 -18
  35. package/dist/engine/usage.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/throttle.d.ts +20 -0
  41. package/dist/lib/throttle.d.ts.map +1 -0
  42. package/dist/lib/throttle.js +28 -0
  43. package/dist/lib/throttle.js.map +1 -0
  44. package/dist/middleware/planLimits.d.ts.map +1 -1
  45. package/dist/middleware/planLimits.js +22 -1
  46. package/dist/middleware/planLimits.js.map +1 -1
  47. package/dist/middleware/rateLimit.d.ts.map +1 -1
  48. package/dist/middleware/rateLimit.js +17 -3
  49. package/dist/middleware/rateLimit.js.map +1 -1
  50. package/dist/ports/entitlements.d.ts +8 -0
  51. package/dist/ports/entitlements.d.ts.map +1 -1
  52. package/dist/ports/kv.d.ts +7 -1
  53. package/dist/ports/kv.d.ts.map +1 -1
  54. package/dist/ports/rate-limit.d.ts +5 -0
  55. package/dist/ports/rate-limit.d.ts.map +1 -1
  56. package/dist/providers/static-entitlements.d.ts +4 -2
  57. package/dist/providers/static-entitlements.d.ts.map +1 -1
  58. package/dist/providers/static-entitlements.js +8 -4
  59. package/dist/providers/static-entitlements.js.map +1 -1
  60. package/dist/routes/workspace.d.ts.map +1 -1
  61. package/dist/routes/workspace.js +25 -22
  62. package/dist/routes/workspace.js.map +1 -1
  63. package/package.json +3 -3
@@ -1,6 +1,7 @@
1
- import { eq, and, sql, isNull, ne, inArray } from 'drizzle-orm';
2
- import { messages, channels, agents, dmParticipants, } from '../db/schema.js';
1
+ import { eq, and, or, sql, isNull, ne, inArray } from 'drizzle-orm';
2
+ import { messages, channels, channelMembers, dmConversations, agents, dmParticipants, } from '../db/schema.js';
3
3
  import { queryInChunks } from '../lib/queryChunks.js';
4
+ import { parseMessageMentions } from './mentions.js';
4
5
  export async function getInbox(db, workspaceId, agentId) {
5
6
  const unreadChannels = await db.all(sql `
6
7
  SELECT ch.name AS channel_name, count(*) AS unread_count
@@ -10,6 +11,7 @@ export async function getInbox(db, workspaceId, agentId) {
10
11
  WHERE cm.agent_id = ${agentId}
11
12
  AND ch.workspace_id = ${workspaceId}
12
13
  AND ch.channel_type = 0
14
+ AND ch.is_archived = false
13
15
  AND m.thread_id IS NULL
14
16
  AND m.agent_id != ${agentId}
15
17
  AND (cm.last_read_id IS NULL OR m.id > cm.last_read_id)
@@ -22,31 +24,75 @@ export async function getInbox(db, workspaceId, agentId) {
22
24
  .from(agents)
23
25
  .where(eq(agents.id, agentId));
24
26
  const agentName = agent?.name ?? '';
25
- // Escape LIKE metacharacters so a name containing % or _ can't widen the match,
26
- // and skip entirely if the name is empty (which would degenerate to '%@%' and
27
- // flood the inbox with every @-containing message).
28
- const escapedName = agentName.replace(/[\\%_]/g, (ch) => `\\${ch}`);
29
- const mentionRows = !agentName ? [] : await db
30
- .select({
31
- id: messages.id,
32
- channelName: channels.name,
33
- agentName: agents.name,
34
- body: messages.body,
35
- createdAt: messages.createdAt,
36
- })
37
- .from(messages)
38
- .leftJoin(channels, eq(messages.channelId, channels.id))
39
- .leftJoin(agents, eq(messages.agentId, agents.id))
40
- .where(and(eq(messages.workspaceId, workspaceId), sql `${messages.body} LIKE ${'%@' + escapedName + '%'} ESCAPE '\\'`, ne(messages.agentId, agentId)))
41
- .orderBy(sql `${messages.id} DESC`)
42
- .limit(20);
43
- const mentionsEnriched = mentionRows.map((row) => ({
44
- id: row.id,
45
- channel_name: row.channelName ?? 'unknown',
46
- agent_name: row.agentName ?? 'unknown',
47
- text: row.body,
48
- created_at: row.createdAt.toISOString(),
49
- }));
27
+ // Mentions must match the canonical engine semantics: an EXACT `@handle`
28
+ // token (escaped `\@x`, `user@x`, and prefix/superstring names are NOT
29
+ // mentions), delivered only where the agent has live access — a member of a
30
+ // live channel (channel_type 0) or a participant of a live DM (channel_type
31
+ // != 0). SQL narrows candidates with the ESCAPED LITERAL name; a keyset scan
32
+ // then walks history in bounded batches until 20 canonical matches or source
33
+ // exhaustion, so a valid older mention behind a batch of false candidates is
34
+ // never silently dropped. Memory is bounded per batch.
35
+ const MAX_MENTIONS = 20;
36
+ const MENTION_BATCH = 200;
37
+ const mentionsEnriched = [];
38
+ if (agentName) {
39
+ const escapedName = agentName.replace(/[\\%_]/g, (ch) => `\\${ch}`);
40
+ let cursor;
41
+ for (;;) {
42
+ const batch = await db
43
+ .select({
44
+ id: messages.id,
45
+ channelName: channels.name,
46
+ agentName: agents.name,
47
+ body: messages.body,
48
+ createdAt: messages.createdAt,
49
+ })
50
+ .from(messages)
51
+ .innerJoin(channels, eq(messages.channelId, channels.id))
52
+ .innerJoin(agents, eq(messages.agentId, agents.id))
53
+ .leftJoin(channelMembers, and(eq(channelMembers.channelId, messages.channelId), eq(channelMembers.agentId, agentId)))
54
+ .leftJoin(dmConversations, eq(dmConversations.channelId, messages.channelId))
55
+ .leftJoin(dmParticipants, and(eq(dmParticipants.conversationId, dmConversations.id), eq(dmParticipants.agentId, agentId), isNull(dmParticipants.leftAt)))
56
+ .where(and(eq(messages.workspaceId, workspaceId), eq(channels.isArchived, false), ne(messages.agentId, agentId), // exclude self-mentions
57
+ sql `${messages.body} LIKE ${'%@' + escapedName + '%'} ESCAPE '\\'`, or(and(eq(channels.channelType, 0), eq(channelMembers.agentId, agentId)), and(ne(channels.channelType, 0), eq(dmParticipants.agentId, agentId))),
58
+ // Length-then-lexical keyset: snowflake ids are decimal strings, so
59
+ // ordering by (length(id), id) is chronological across MIXED decimal
60
+ // lengths with no numeric precision loss (a bare text compare is not).
61
+ // The cursor predicate matches the ORDER BY exactly. Tradeoff: the
62
+ // scan is bounded per batch but deliberately NOT by a total cap — a
63
+ // total cap would silently drop valid older mentions.
64
+ // idx_messages_workspace_length_id covers (workspace_id, length(id), id)
65
+ // so each batch can stop at MENTION_BATCH without a cross-workspace scan.
66
+ ...(cursor
67
+ ? [
68
+ sql `(length(${messages.id}) < length(${cursor})
69
+ OR (length(${messages.id}) = length(${cursor}) AND ${messages.id} < ${cursor}))`,
70
+ ]
71
+ : [])))
72
+ .orderBy(sql `length(${messages.id}) DESC, ${messages.id} DESC`)
73
+ .limit(MENTION_BATCH);
74
+ if (batch.length === 0)
75
+ break;
76
+ for (const row of batch) {
77
+ if (mentionsEnriched.length >= MAX_MENTIONS)
78
+ break;
79
+ if (parseMessageMentions(row.body).includes(agentName)) {
80
+ mentionsEnriched.push({
81
+ id: row.id,
82
+ channel_name: row.channelName ?? 'unknown',
83
+ agent_name: row.agentName ?? 'unknown',
84
+ text: row.body,
85
+ created_at: row.createdAt.toISOString(),
86
+ });
87
+ }
88
+ }
89
+ if (mentionsEnriched.length >= MAX_MENTIONS)
90
+ break;
91
+ cursor = batch[batch.length - 1].id;
92
+ if (batch.length < MENTION_BATCH)
93
+ break;
94
+ }
95
+ }
50
96
  // 3. Unread DMs (1:1 + group)
51
97
  const unreadDmRows = await db.all(sql `
52
98
  SELECT dc.id AS conversation_id, dc.channel_id, count(m.id) AS unread_count
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/engine/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/engine/inbox.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ declare function publicNode(row: NodeRow, now?: number): {
43
43
  kind?: string | undefined;
44
44
  global?: boolean | undefined;
45
45
  queue?: boolean | undefined;
46
+ execution_mode?: "task" | "short" | undefined;
46
47
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
47
48
  }[];
48
49
  tags: string[];
@@ -83,6 +84,7 @@ export declare function createNodeToken(db: Db, workspaceId: string, data: {
83
84
  kind?: string | undefined;
84
85
  global?: boolean | undefined;
85
86
  queue?: boolean | undefined;
87
+ execution_mode?: "task" | "short" | undefined;
86
88
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
87
89
  }[];
88
90
  tags: string[];
@@ -112,6 +114,7 @@ export declare function getNodeByTokenHash(db: Db, tokenHash: string): Promise<{
112
114
  kind?: string | undefined;
113
115
  global?: boolean | undefined;
114
116
  queue?: boolean | undefined;
117
+ execution_mode?: "task" | "short" | undefined;
115
118
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
116
119
  }[];
117
120
  maxAgents: number;
@@ -142,6 +145,7 @@ export declare function getNodeByName(db: Db, workspaceId: string, name: string)
142
145
  kind?: string | undefined;
143
146
  global?: boolean | undefined;
144
147
  queue?: boolean | undefined;
148
+ execution_mode?: "task" | "short" | undefined;
145
149
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
146
150
  }[];
147
151
  maxAgents: number;
@@ -172,6 +176,7 @@ export declare function getNodeById(db: Db, workspaceId: string, nodeId: string)
172
176
  kind?: string | undefined;
173
177
  global?: boolean | undefined;
174
178
  queue?: boolean | undefined;
179
+ execution_mode?: "task" | "short" | undefined;
175
180
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
176
181
  }[];
177
182
  maxAgents: number;
@@ -224,6 +229,7 @@ export declare function getBrokerNodeByMachineId(db: Db, workspaceId: string, ma
224
229
  kind?: string | undefined;
225
230
  global?: boolean | undefined;
226
231
  queue?: boolean | undefined;
232
+ execution_mode?: "task" | "short" | undefined;
227
233
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
228
234
  }[];
229
235
  maxAgents: number;
@@ -295,6 +301,7 @@ export declare function resolveNodeForEnroll(db: Db, workspaceId: string, data:
295
301
  kind?: string | undefined;
296
302
  global?: boolean | undefined;
297
303
  queue?: boolean | undefined;
304
+ execution_mode?: "task" | "short" | undefined;
298
305
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
299
306
  }[];
300
307
  maxAgents: number;
@@ -329,6 +336,7 @@ export declare function heartbeatNode(db: Db, workspaceId: string, nodeId: strin
329
336
  kind?: string | undefined;
330
337
  global?: boolean | undefined;
331
338
  queue?: boolean | undefined;
339
+ execution_mode?: "task" | "short" | undefined;
332
340
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
333
341
  }[];
334
342
  tags: string[];
@@ -377,6 +385,7 @@ export declare function ensureDirectNodeForAgent(db: Db, workspaceId: string, ag
377
385
  kind?: string | undefined;
378
386
  global?: boolean | undefined;
379
387
  queue?: boolean | undefined;
388
+ execution_mode?: "task" | "short" | undefined;
380
389
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
381
390
  }[];
382
391
  tags: string[];
@@ -533,6 +542,7 @@ export declare function getPublicNode(db: Db, workspaceId: string, name: string)
533
542
  kind?: string | undefined;
534
543
  global?: boolean | undefined;
535
544
  queue?: boolean | undefined;
545
+ execution_mode?: "task" | "short" | undefined;
536
546
  metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
537
547
  }[];
538
548
  tags: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/engine/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/engine/node.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { FLEET_DELIVERY_CURSOR_CAPABILITY, NODE_REGISTRATION_CONTRACT_V1, parseF
5
5
  import { actionInvocations, agents, agentNodeBindings, channelMembers, channels, nodeProviders, nodes } from '../db/schema.js';
6
6
  import { randomHex, sha256Hex } from '../lib/crypto.js';
7
7
  import { codedError } from '../lib/httpError.js';
8
+ import { acceptTaskInvocation, completeTaskInvocation } from './taskInvocation.js';
8
9
  import { runAtomic } from '../ports/database.js';
9
10
  import { isProviderAgentDeliveryReady } from '../ports/realtime.js';
10
11
  import { generateId } from './snowflake.js';
@@ -1969,7 +1970,26 @@ export async function handleNodeControlMessage(args) {
1969
1970
  await deliverPendingToNode(args.db, args.registry, args.workspaceId, args.nodeId, { providerName: frameProviderName, agentIds: replayAgentIds });
1970
1971
  return;
1971
1972
  }
1973
+ case 'action.accept': {
1974
+ const accepted = await acceptTaskInvocation(args.db, args.workspaceId, args.nodeId, frameProviderName, message);
1975
+ sendControl(args.socket, { v: 1, id: message.id, type: 'reply', ok: true, data: accepted });
1976
+ return;
1977
+ }
1972
1978
  case 'action.result': {
1979
+ const task = await completeTaskInvocation(args.db, args.workspaceId, args.nodeId, frameProviderName, message);
1980
+ if (task) {
1981
+ // The state CAS has committed before this reply. A lost reply is
1982
+ // reconciled by replaying the same fenced result or acceptance.
1983
+ sendControl(args.socket, { v: 1, id: message.id, type: 'reply', ok: true, data: task.receipt });
1984
+ if (task.completed && args.completionDeps) {
1985
+ const row = task.completed;
1986
+ await emitInvocationCompletionEffects(args.completionDeps, args.workspaceId, {
1987
+ invocation_id: row.id, action_name: row.actionName, caller_id: row.callerId,
1988
+ status: row.status, output: row.output, error: row.error,
1989
+ });
1990
+ }
1991
+ return;
1992
+ }
1973
1993
  const completed = await completeNodeInvocation(args.db, args.registry, args.workspaceId, args.nodeId, frameProviderName, message.invocation_id, {
1974
1994
  ...(Object.prototype.hasOwnProperty.call(message, 'output') ? { output: message.output } : {}),
1975
1995
  ...(message.error ? { error: message.error } : {}),