@relaycast/engine 8.9.1 → 8.10.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 (114) hide show
  1. package/dist/adapters/node/index.d.ts.map +1 -1
  2. package/dist/adapters/node/index.js +6 -0
  3. package/dist/adapters/node/index.js.map +1 -1
  4. package/dist/db/migrations/0057_a2a_egress.sql +20 -0
  5. package/dist/db/migrations/0058_a2a_egress_context.sql +8 -0
  6. package/dist/db/migrations/0059_a2a_inbound_admission.sql +26 -0
  7. package/dist/db/schema.d.ts +603 -0
  8. package/dist/db/schema.d.ts.map +1 -1
  9. package/dist/db/schema.js +34 -0
  10. package/dist/db/schema.js.map +1 -1
  11. package/dist/engine/a2a.d.ts +4 -1
  12. package/dist/engine/a2a.d.ts.map +1 -1
  13. package/dist/engine/a2a.js +43 -6
  14. package/dist/engine/a2a.js.map +1 -1
  15. package/dist/engine/a2aEgress.d.ts +19 -0
  16. package/dist/engine/a2aEgress.d.ts.map +1 -0
  17. package/dist/engine/a2aEgress.js +118 -0
  18. package/dist/engine/a2aEgress.js.map +1 -0
  19. package/dist/engine/delivery.d.ts +2 -0
  20. package/dist/engine/delivery.d.ts.map +1 -1
  21. package/dist/engine/delivery.js +16 -1
  22. package/dist/engine/delivery.js.map +1 -1
  23. package/dist/engine/deliveryWire.d.ts.map +1 -1
  24. package/dist/engine/deliveryWire.js +1 -1
  25. package/dist/engine/deliveryWire.js.map +1 -1
  26. package/dist/engine/deliveryWrites.d.ts +9 -0
  27. package/dist/engine/deliveryWrites.d.ts.map +1 -1
  28. package/dist/engine/deliveryWrites.js +70 -19
  29. package/dist/engine/deliveryWrites.js.map +1 -1
  30. package/dist/engine/dm.d.ts +47 -8
  31. package/dist/engine/dm.d.ts.map +1 -1
  32. package/dist/engine/dm.js +239 -42
  33. package/dist/engine/dm.js.map +1 -1
  34. package/dist/engine/groupDm.d.ts +2 -0
  35. package/dist/engine/groupDm.d.ts.map +1 -1
  36. package/dist/engine/groupDm.js +2 -1
  37. package/dist/engine/groupDm.js.map +1 -1
  38. package/dist/engine/inboundWebhook.d.ts +3 -0
  39. package/dist/engine/inboundWebhook.d.ts.map +1 -1
  40. package/dist/engine/inboundWebhook.js +7 -1
  41. package/dist/engine/inboundWebhook.js.map +1 -1
  42. package/dist/engine/message.d.ts +2 -0
  43. package/dist/engine/message.d.ts.map +1 -1
  44. package/dist/engine/message.js +2 -1
  45. package/dist/engine/message.js.map +1 -1
  46. package/dist/engine/node.d.ts +2 -2
  47. package/dist/engine/thread.d.ts +2 -0
  48. package/dist/engine/thread.d.ts.map +1 -1
  49. package/dist/engine/thread.js +3 -1
  50. package/dist/engine/thread.js.map +1 -1
  51. package/dist/engine/workspaceDeliveryPolicy.d.ts +91 -0
  52. package/dist/engine/workspaceDeliveryPolicy.d.ts.map +1 -0
  53. package/dist/engine/workspaceDeliveryPolicy.js +130 -0
  54. package/dist/engine/workspaceDeliveryPolicy.js.map +1 -0
  55. package/dist/engine/workspaceEvents.d.ts +120 -0
  56. package/dist/engine/workspaceEvents.d.ts.map +1 -1
  57. package/dist/engine/workspaceEvents.js +8 -10
  58. package/dist/engine/workspaceEvents.js.map +1 -1
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +2 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/lib/httpError.d.ts +1 -1
  64. package/dist/lib/httpError.d.ts.map +1 -1
  65. package/dist/lib/httpError.js +2 -0
  66. package/dist/lib/httpError.js.map +1 -1
  67. package/dist/lib/httpResponse.d.ts +6 -6
  68. package/dist/middleware/idempotency.d.ts +15 -10
  69. package/dist/middleware/idempotency.d.ts.map +1 -1
  70. package/dist/middleware/idempotency.js +9 -9
  71. package/dist/middleware/idempotency.js.map +1 -1
  72. package/dist/ports/database.d.ts +4 -20
  73. package/dist/ports/database.d.ts.map +1 -1
  74. package/dist/ports/database.js +28 -7
  75. package/dist/ports/database.js.map +1 -1
  76. package/dist/ports/index.d.ts +9 -0
  77. package/dist/ports/index.d.ts.map +1 -1
  78. package/dist/ports/workspaceDelivery.d.ts +31 -0
  79. package/dist/ports/workspaceDelivery.d.ts.map +1 -0
  80. package/dist/ports/workspaceDelivery.js +2 -0
  81. package/dist/ports/workspaceDelivery.js.map +1 -0
  82. package/dist/routes/a2a.d.ts.map +1 -1
  83. package/dist/routes/a2a.js +162 -26
  84. package/dist/routes/a2a.js.map +1 -1
  85. package/dist/routes/delivery.d.ts.map +1 -1
  86. package/dist/routes/delivery.js +15 -4
  87. package/dist/routes/delivery.js.map +1 -1
  88. package/dist/routes/deliveryRouting.d.ts +1 -1
  89. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  90. package/dist/routes/deliveryRouting.js +8 -7
  91. package/dist/routes/deliveryRouting.js.map +1 -1
  92. package/dist/routes/dm.d.ts.map +1 -1
  93. package/dist/routes/dm.js +27 -8
  94. package/dist/routes/dm.js.map +1 -1
  95. package/dist/routes/fanout.d.ts +1 -1
  96. package/dist/routes/fanout.d.ts.map +1 -1
  97. package/dist/routes/fanout.js +2 -2
  98. package/dist/routes/fanout.js.map +1 -1
  99. package/dist/routes/groupDm.d.ts.map +1 -1
  100. package/dist/routes/groupDm.js +3 -2
  101. package/dist/routes/groupDm.js.map +1 -1
  102. package/dist/routes/inboundWebhook.d.ts.map +1 -1
  103. package/dist/routes/inboundWebhook.js +5 -1
  104. package/dist/routes/inboundWebhook.js.map +1 -1
  105. package/dist/routes/message.d.ts.map +1 -1
  106. package/dist/routes/message.js +3 -1
  107. package/dist/routes/message.js.map +1 -1
  108. package/dist/routes/relayfileInbound.d.ts.map +1 -1
  109. package/dist/routes/relayfileInbound.js +9 -3
  110. package/dist/routes/relayfileInbound.js.map +1 -1
  111. package/dist/routes/thread.d.ts.map +1 -1
  112. package/dist/routes/thread.js +3 -1
  113. package/dist/routes/thread.js.map +1 -1
  114. package/package.json +5 -4
@@ -1,5 +1,6 @@
1
- import { and, eq, isNull, ne, or, sql, inArray } from 'drizzle-orm';
1
+ import { and, eq, isNull, ne, or, sql, inArray, getTableColumns } from 'drizzle-orm';
2
2
  import { agentNodeBindings, agents, channelMembers, deliveries, dmParticipants, nodes, } from '../db/schema.js';
3
+ import { workspaceActiveDepthSql, workspaceGrowthLimit, } from './workspaceDeliveryPolicy.js';
3
4
  function deliveryId(messageId, agentId) {
4
5
  return sql `'del_' || ${messageId} || '_' || ${agentId}`;
5
6
  }
@@ -16,8 +17,26 @@ function channelMuteDeliveryFilter(mentionHandles) {
16
17
  }
17
18
  return or(eq(channelMembers.isMuted, false), inArray(agents.name, mentionHandles));
18
19
  }
19
- function asDeliveryInsertSelect(query) {
20
- return query;
20
+ /** Materialize the exact rows that will be inserted, including routing, mute,
21
+ * mailbox, and duplicate filters. Admission and insertion share this snapshot;
22
+ * neither re-evaluates recipient membership after sequence triggers run.
23
+ */
24
+ function deliveryAdmissionSelect(workspaceId, policy, audience) {
25
+ return (query) => {
26
+ if (!policy)
27
+ return query.getSQL();
28
+ const columns = Object.values(getTableColumns(deliveries));
29
+ const names = sql.join(columns.map(column => sql.identifier(column.name)), sql `, `);
30
+ const values = sql.join(columns.map(column => column.name === 'status'
31
+ ? sql `CASE WHEN capacity_admission.allowed THEN capacity_candidates.status ELSE NULL END`
32
+ : sql `capacity_candidates.${sql.identifier(column.name)}`), sql `, `);
33
+ const limit = workspaceGrowthLimit(policy, audience);
34
+ return sql `WITH capacity_candidates (${names}) AS MATERIALIZED (${query.getSQL()}),
35
+ capacity_admission AS MATERIALIZED (
36
+ SELECT (${workspaceActiveDepthSql(workspaceId)} + (SELECT COUNT(*) FROM capacity_candidates)) <= ${limit} AS allowed
37
+ )
38
+ SELECT ${values} FROM capacity_candidates CROSS JOIN capacity_admission WHERE 1`;
39
+ };
21
40
  }
22
41
  function ttlSeconds(ttlMs) {
23
42
  return Math.max(1, Math.ceil(ttlMs / 1000));
@@ -50,27 +69,53 @@ function belowDepthCapSql(workspaceId, agentId, depthCap) {
50
69
  )
51
70
  ) < ${depthCap}`;
52
71
  }
72
+ /**
73
+ * Compose the `workspace_id` value for a delivery insert.
74
+ *
75
+ * `deliveries.workspace_id` is NOT NULL, so emitting NULL for a failing
76
+ * condition turns it into a real statement error that rolls back the enclosing
77
+ * atomic write — the mechanism the existing `rejectOnOverflow` per-recipient
78
+ * guard already relies on. The workspace growth condition is scalar (constant
79
+ * across the fanout), so when it fails the *whole* broadcast is refused, never
80
+ * silently truncated or partially admitted.
81
+ */
82
+ /** The `workspace_id` sentinel for the per-recipient / required-mailbox guard. */
83
+ function guardedWorkspaceIdSql(args) {
84
+ if (!args.perRecipientOk)
85
+ return sql `${args.workspaceId}`;
86
+ return sql `CASE WHEN ${args.perRecipientOk} THEN ${args.workspaceId} ELSE NULL END`;
87
+ }
88
+ function newDeliveryIdentitySql(messageId, agentId) {
89
+ return sql `NOT EXISTS (SELECT 1 FROM deliveries existing
90
+ WHERE existing.message_id = ${messageId} AND existing.agent_id = ${agentId})`;
91
+ }
53
92
  export function buildChannelDeliveryWrite(db, input) {
54
93
  const mentionHandles = input.mentionHandles ?? [];
55
94
  const reason = channelReasonSql(mentionHandles, input.reason ?? 'message');
95
+ const workspaceId = guardedWorkspaceIdSql({
96
+ workspaceId: input.workspaceId,
97
+ perRecipientOk: input.rejectOnOverflow
98
+ ? belowDepthCapSql(input.workspaceId, channelMembers.agentId, input.depthCap)
99
+ : undefined,
100
+ });
101
+ const guardedSelect = deliveryAdmissionSelect(input.workspaceId, input.workspacePolicy, input.audience ?? 'broadcast');
102
+ const status = sql `${'queued'}`;
56
103
  return db
57
104
  .insert(deliveries)
58
- .select((qb) => asDeliveryInsertSelect(qb
105
+ .select((qb) => guardedSelect(qb
59
106
  .select({
60
107
  id: deliveryId(input.messageId, channelMembers.agentId),
61
108
  // A NOT NULL guard runs inside the same INSERT SELECT as capacity
62
109
  // evaluation. Unlike a preflight count, it cannot race another send.
63
110
  // The enclosing atomic write rolls back the message and every recipient.
64
- workspaceId: input.rejectOnOverflow
65
- ? sql `CASE WHEN ${belowDepthCapSql(input.workspaceId, channelMembers.agentId, input.depthCap)} THEN ${input.workspaceId} ELSE NULL END`
66
- : sql `${input.workspaceId}`,
111
+ workspaceId,
67
112
  messageId: sql `${input.messageId}`,
68
113
  agentId: channelMembers.agentId,
69
114
  mode: sql `${input.mode}`,
70
115
  reason,
71
116
  priority: sql `${'normal'}`,
72
117
  deadline: sql `null`,
73
- status: sql `${'queued'}`,
118
+ status,
74
119
  // Migration 0029 installs an AFTER INSERT trigger that advances the
75
120
  // same agent row to this value. Allocation and high-water advancement
76
121
  // therefore happen in one SQLite statement on every adapter.
@@ -99,23 +144,26 @@ export function buildChannelDeliveryWrite(db, input) {
99
144
  .innerJoin(agents, eq(channelMembers.agentId, agents.id))
100
145
  .leftJoin(agentNodeBindings, and(eq(agentNodeBindings.workspaceId, input.workspaceId), eq(agentNodeBindings.agentId, channelMembers.agentId), eq(agentNodeBindings.status, 'active'), eq(agents.locationType, 'via_node'), eq(agents.locationNodeId, agentNodeBindings.nodeId)))
101
146
  .leftJoin(nodes, and(eq(nodes.workspaceId, input.workspaceId), eq(nodes.id, sql `COALESCE(${agentNodeBindings.nodeId}, ${agents.locationNodeId})`)))
102
- .where(and(eq(channelMembers.channelId, input.channelId), channelMuteDeliveryFilter(mentionHandles), ne(channelMembers.agentId, input.senderAgentId), input.rejectOnOverflow ? undefined : belowDepthCapSql(input.workspaceId, channelMembers.agentId, input.depthCap)))))
147
+ .where(and(eq(channelMembers.channelId, input.channelId), channelMuteDeliveryFilter(mentionHandles), ne(channelMembers.agentId, input.senderAgentId), newDeliveryIdentitySql(input.messageId, channelMembers.agentId), input.rejectOnOverflow ? undefined : belowDepthCapSql(input.workspaceId, channelMembers.agentId, input.depthCap)))))
103
148
  .onConflictDoNothing();
104
149
  }
105
150
  export function buildGroupDmDeliveryWrite(db, input) {
151
+ const workspaceId = guardedWorkspaceIdSql({ workspaceId: input.workspaceId });
152
+ const guardedSelect = deliveryAdmissionSelect(input.workspaceId, input.workspacePolicy, 'targeted');
153
+ const status = sql `${'queued'}`;
106
154
  return db
107
155
  .insert(deliveries)
108
- .select((qb) => asDeliveryInsertSelect(qb
156
+ .select((qb) => guardedSelect(qb
109
157
  .select({
110
158
  id: deliveryId(input.messageId, dmParticipants.agentId),
111
- workspaceId: sql `${input.workspaceId}`,
159
+ workspaceId,
112
160
  messageId: sql `${input.messageId}`,
113
161
  agentId: dmParticipants.agentId,
114
162
  mode: sql `${input.mode}`,
115
163
  reason: sql `${'dm'}`,
116
164
  priority: sql `${'normal'}`,
117
165
  deadline: sql `null`,
118
- status: sql `${'queued'}`,
166
+ status,
119
167
  seq: nextDeliverySeqSql(),
120
168
  locationType: sql `CASE WHEN ${agentNodeBindings.nodeId} IS NOT NULL THEN 'via_node' ELSE ${agents.locationType} END`,
121
169
  locationNodeId: sql `COALESCE(${agentNodeBindings.nodeId}, ${agents.locationNodeId})`,
@@ -141,23 +189,26 @@ export function buildGroupDmDeliveryWrite(db, input) {
141
189
  .innerJoin(agents, eq(dmParticipants.agentId, agents.id))
142
190
  .leftJoin(agentNodeBindings, and(eq(agentNodeBindings.workspaceId, input.workspaceId), eq(agentNodeBindings.agentId, dmParticipants.agentId), eq(agentNodeBindings.status, 'active'), eq(agents.locationType, 'via_node'), eq(agents.locationNodeId, agentNodeBindings.nodeId)))
143
191
  .leftJoin(nodes, and(eq(nodes.workspaceId, input.workspaceId), eq(nodes.id, sql `COALESCE(${agentNodeBindings.nodeId}, ${agents.locationNodeId})`)))
144
- .where(and(eq(dmParticipants.conversationId, input.conversationId), isNull(dmParticipants.leftAt), ne(dmParticipants.agentId, input.senderAgentId), belowDepthCapSql(input.workspaceId, dmParticipants.agentId, input.depthCap)))))
192
+ .where(and(eq(dmParticipants.conversationId, input.conversationId), isNull(dmParticipants.leftAt), ne(dmParticipants.agentId, input.senderAgentId), newDeliveryIdentitySql(input.messageId, dmParticipants.agentId), belowDepthCapSql(input.workspaceId, dmParticipants.agentId, input.depthCap)))))
145
193
  .onConflictDoNothing();
146
194
  }
147
195
  export function buildDirectDeliveryWrite(db, input) {
196
+ const workspaceId = guardedWorkspaceIdSql({ workspaceId: input.workspaceId });
197
+ const guardedSelect = deliveryAdmissionSelect(input.workspaceId, input.workspacePolicy, 'targeted');
198
+ const status = sql `${'queued'}`;
148
199
  return db
149
200
  .insert(deliveries)
150
- .select((qb) => asDeliveryInsertSelect(qb
201
+ .select((qb) => guardedSelect(qb
151
202
  .select({
152
203
  id: sql `${input.deliveryId ?? `del_${input.messageId}_${input.agentId}`}`,
153
- workspaceId: sql `${input.workspaceId}`,
204
+ workspaceId,
154
205
  messageId: sql `${input.messageId}`,
155
206
  agentId: agents.id,
156
207
  mode: sql `${input.mode}`,
157
208
  reason: sql `${input.reason}`,
158
209
  priority: sql `${'normal'}`,
159
210
  deadline: sql `null`,
160
- status: sql `${'queued'}`,
211
+ status,
161
212
  seq: nextDeliverySeqSql(),
162
213
  locationType: sql `CASE WHEN ${agentNodeBindings.nodeId} IS NOT NULL THEN 'via_node' ELSE ${agents.locationType} END`,
163
214
  locationNodeId: sql `COALESCE(${agentNodeBindings.nodeId}, ${agents.locationNodeId})`,
@@ -182,7 +233,7 @@ export function buildDirectDeliveryWrite(db, input) {
182
233
  .from(agents)
183
234
  .leftJoin(agentNodeBindings, and(eq(agentNodeBindings.workspaceId, input.workspaceId), eq(agentNodeBindings.agentId, agents.id), eq(agentNodeBindings.status, 'active'), eq(agents.locationType, 'via_node'), eq(agents.locationNodeId, agentNodeBindings.nodeId)))
184
235
  .leftJoin(nodes, and(eq(nodes.workspaceId, input.workspaceId), eq(nodes.id, sql `COALESCE(${agentNodeBindings.nodeId}, ${agents.locationNodeId})`)))
185
- .where(and(eq(agents.id, input.agentId), belowDepthCapSql(input.workspaceId, agents.id, input.depthCap)))))
236
+ .where(and(eq(agents.id, input.agentId), eq(agents.workspaceId, input.workspaceId), newDeliveryIdentitySql(input.messageId, agents.id), belowDepthCapSql(input.workspaceId, agents.id, input.depthCap)))))
186
237
  .onConflictDoNothing();
187
238
  }
188
239
  export async function fetchDeliveryFanoutRecords(db, messageId) {
@@ -249,7 +300,7 @@ export async function fetchChannelDeliveryOutcomes(db, input) {
249
300
  })
250
301
  .from(channelMembers)
251
302
  .innerJoin(agents, eq(channelMembers.agentId, agents.id))
252
- .where(and(eq(channelMembers.channelId, input.channelId), channelMuteDeliveryFilter(mentionHandles), ne(channelMembers.agentId, input.senderAgentId))),
303
+ .where(and(eq(channelMembers.channelId, input.channelId), channelMuteDeliveryFilter(mentionHandles), ne(channelMembers.agentId, input.senderAgentId), newDeliveryIdentitySql(input.messageId, channelMembers.agentId))),
253
304
  ]);
254
305
  return {
255
306
  deliveries,
@@ -266,7 +317,7 @@ export async function fetchGroupDeliveryOutcomes(db, input) {
266
317
  })
267
318
  .from(dmParticipants)
268
319
  .innerJoin(agents, eq(dmParticipants.agentId, agents.id))
269
- .where(and(eq(dmParticipants.conversationId, input.conversationId), isNull(dmParticipants.leftAt), ne(dmParticipants.agentId, input.senderAgentId))),
320
+ .where(and(eq(dmParticipants.conversationId, input.conversationId), isNull(dmParticipants.leftAt), ne(dmParticipants.agentId, input.senderAgentId), newDeliveryIdentitySql(input.messageId, dmParticipants.agentId))),
270
321
  ]);
271
322
  return {
272
323
  deliveries,
@@ -1 +1 @@
1
- {"version":3,"file":"deliveryWrites.js","sourceRoot":"","sources":["../../src/engine/deliveryWrites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deliveryWrites.js","sourceRoot":"","sources":["../../src/engine/deliveryWrites.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,38 @@
1
1
  import type { DmMessage } from '@relaycast/types';
2
2
  import type { getDb } from '../db/index.js';
3
+ import { messages } from '../db/schema.js';
4
+ import { type DeliveryOutcomeRecords } from './deliveryWrites.js';
3
5
  import { type MailboxConfig } from './mailboxConfig.js';
6
+ import { type WorkspaceDeliveryPolicy } from './workspaceDeliveryPolicy.js';
4
7
  import { type AttachmentRow } from './attachments.js';
5
8
  type Db = ReturnType<typeof getDb>;
6
9
  interface SendDmOptions {
7
10
  skipA2aIntercept?: boolean;
11
+ /** Stable request identity for resuming already admitted outbound A2A. */
12
+ idempotencyKey?: string;
13
+ /** Count an authenticated inbound peer in the same transaction as its DM. */
14
+ receivedA2aAgentId?: string;
15
+ /** Token hash authenticated by the route; checked with registration at SQL admission. */
16
+ receivedA2aTokenHash?: string;
17
+ /** Verified legacy KV response to promote without admitting another message. */
18
+ legacyInbound?: unknown;
19
+ /** Authenticated actor/scope/key identity, never a caller-selected recipient identity. */
20
+ inboundIdentity?: {
21
+ scope: string;
22
+ key: string;
23
+ };
24
+ /** Resolve only after durable accepted lookup (cached HTTP replay never calls sendDm). */
25
+ resolveWorkspaceDeliveryPolicy?: () => Promise<WorkspaceDeliveryPolicy | undefined>;
26
+ /** Fast paths only; durable events and delivery already committed before this hook. */
27
+ afterAdmission?: (data: SendDmResult, event: {
28
+ seq: number;
29
+ payload: Record<string, unknown>;
30
+ data: Record<string, unknown>;
31
+ outboxId: string;
32
+ }) => void;
8
33
  mailbox?: MailboxConfig;
34
+ /** Server-resolved workspace growth policy; absent => no workspace guard. */
35
+ workspaceDeliveryPolicy?: WorkspaceDeliveryPolicy;
9
36
  }
10
37
  /**
11
38
  * Recognize a unique-constraint violation on `dm_conversation_reservations`
@@ -39,13 +66,14 @@ interface SendDmOptions {
39
66
  * to prevent a 500 into one itself. Same reasoning as `isObserverTokenNameConflict`.
40
67
  */
41
68
  export declare function isPairReservationConflict(err: unknown): boolean;
42
- export declare function sendDm(db: Db, workspaceId: string, fromAgentId: string, data: {
69
+ declare function buildDmResult(message: Pick<typeof messages.$inferSelect, 'id' | 'agentId' | 'body' | 'metadata' | 'createdAt'>, conv: {
70
+ id: string;
71
+ }, fromAgent: {
72
+ name: string;
73
+ }, data: {
43
74
  to: string;
44
- text: string;
45
- attachments?: string[];
46
75
  mode?: 'wait' | 'steer';
47
- data?: Record<string, unknown> | null;
48
- }, options?: SendDmOptions): Promise<{
76
+ }, attachments: AttachmentRow[]): {
49
77
  conversation_id: string;
50
78
  message: {
51
79
  id: string;
@@ -64,9 +92,20 @@ export declare function sendDm(db: Db, workspaceId: string, fromAgentId: string,
64
92
  injection_mode: "wait" | "steer";
65
93
  attachments: AttachmentRow[];
66
94
  metadata: Record<string, unknown>;
67
- _delivery: import("./deliveryWrites.js").DeliveryFanoutRecord;
68
- _delivery_rejections: import("./deliveryWrites.js").DeliveryRejectionRecord[];
69
- }>;
95
+ };
96
+ export type AcceptedDmResult = ReturnType<typeof buildDmResult>;
97
+ export type SendDmResult = AcceptedDmResult & {
98
+ _delivery: DeliveryOutcomeRecords['deliveries'][number] | null;
99
+ _delivery_rejections: DeliveryOutcomeRecords['rejections'];
100
+ _notifications_durable?: boolean;
101
+ };
102
+ export declare function sendDm(db: Db, workspaceId: string, fromAgentId: string, data: {
103
+ to: string;
104
+ text: string;
105
+ attachments?: string[];
106
+ mode?: 'wait' | 'steer';
107
+ data?: Record<string, unknown> | null;
108
+ }, options?: SendDmOptions): Promise<SendDmResult>;
70
109
  export declare function listConversations(db: Db, workspaceId: string, agentId: string, opts?: {
71
110
  limit?: number;
72
111
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/engine/dm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAoB5C,OAAO,EAAqD,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG3G,OAAO,EAAiD,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIrG,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,UAAU,aAAa;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA6B/D;AAyMD,wBAAsB,MAAM,CAC1B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACvC,EACD,OAAO,GAAE,aAAkB;;;;;;;;;;;;;;;;;;;;;GAsJ5B;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;kBAwEwC,MAAM;oBAAc,MAAM;;;;;;;;;;KAkChG;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,SAAS,EAAE,CAAC,CAyEtB"}
1
+ {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/engine/dm.ts"],"names":[],"mappings":"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"}