@relaycast/engine 5.0.0 → 5.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.
- package/dist/adapters/node/index.d.ts.map +1 -1
- package/dist/adapters/node/index.js +0 -1
- package/dist/adapters/node/index.js.map +1 -1
- package/dist/adapters/node/realtime.d.ts +13 -41
- package/dist/adapters/node/realtime.d.ts.map +1 -1
- package/dist/adapters/node/realtime.js +68 -230
- package/dist/adapters/node/realtime.js.map +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +31 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/tokenKind.d.ts +40 -0
- package/dist/auth/tokenKind.d.ts.map +1 -0
- package/dist/auth/tokenKind.js +89 -0
- package/dist/auth/tokenKind.js.map +1 -0
- package/dist/db/migrations/0025_node_kind_role_adapter.sql +45 -0
- package/dist/db/migrations/0026_observer_tokens.sql +32 -0
- package/dist/db/schema.d.ts +329 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +32 -3
- package/dist/db/schema.js.map +1 -1
- package/dist/engine/action.d.ts +2 -2
- package/dist/engine/action.d.ts.map +1 -1
- package/dist/engine/action.js +182 -7
- package/dist/engine/action.js.map +1 -1
- package/dist/engine/activity.d.ts +6 -0
- package/dist/engine/activity.d.ts.map +1 -1
- package/dist/engine/activity.js +9 -2
- package/dist/engine/activity.js.map +1 -1
- package/dist/engine/agent.d.ts +0 -33
- package/dist/engine/agent.d.ts.map +1 -1
- package/dist/engine/agent.js +0 -155
- package/dist/engine/agent.js.map +1 -1
- package/dist/engine/attachments.d.ts +6 -0
- package/dist/engine/attachments.d.ts.map +1 -1
- package/dist/engine/attachments.js +37 -0
- package/dist/engine/attachments.js.map +1 -1
- package/dist/engine/console.d.ts +78 -1
- package/dist/engine/console.d.ts.map +1 -1
- package/dist/engine/console.js +175 -19
- package/dist/engine/console.js.map +1 -1
- package/dist/engine/delivery.d.ts +2 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +4 -0
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/deliveryWire.d.ts +4 -0
- package/dist/engine/deliveryWire.d.ts.map +1 -1
- package/dist/engine/deliveryWire.js +2 -0
- package/dist/engine/deliveryWire.js.map +1 -1
- package/dist/engine/deliveryWrites.d.ts +1 -0
- package/dist/engine/deliveryWrites.d.ts.map +1 -1
- package/dist/engine/deliveryWrites.js +7 -2
- package/dist/engine/deliveryWrites.js.map +1 -1
- package/dist/engine/dm.d.ts.map +1 -1
- package/dist/engine/dm.js +11 -33
- package/dist/engine/dm.js.map +1 -1
- package/dist/engine/dmAll.d.ts.map +1 -1
- package/dist/engine/dmAll.js +2 -0
- package/dist/engine/dmAll.js.map +1 -1
- package/dist/engine/groupDm.d.ts +2 -3
- package/dist/engine/groupDm.d.ts.map +1 -1
- package/dist/engine/groupDm.js +8 -26
- package/dist/engine/groupDm.js.map +1 -1
- package/dist/engine/invocationCompletion.d.ts +1 -1
- package/dist/engine/invocationCompletion.d.ts.map +1 -1
- package/dist/engine/invocationCompletion.js +9 -2
- package/dist/engine/invocationCompletion.js.map +1 -1
- package/dist/engine/message.d.ts.map +1 -1
- package/dist/engine/message.js +15 -44
- package/dist/engine/message.js.map +1 -1
- package/dist/engine/node.d.ts +13 -1
- package/dist/engine/node.d.ts.map +1 -1
- package/dist/engine/node.js +100 -31
- package/dist/engine/node.js.map +1 -1
- package/dist/engine/nodeContext.d.ts +6 -1
- package/dist/engine/nodeContext.d.ts.map +1 -1
- package/dist/engine/nodeContext.js +47 -32
- package/dist/engine/nodeContext.js.map +1 -1
- package/dist/engine/nodeDeliver.d.ts +23 -0
- package/dist/engine/nodeDeliver.d.ts.map +1 -0
- package/dist/engine/nodeDeliver.js +81 -0
- package/dist/engine/nodeDeliver.js.map +1 -0
- package/dist/engine/observerToken.d.ts +110 -0
- package/dist/engine/observerToken.d.ts.map +1 -0
- package/dist/engine/observerToken.js +528 -0
- package/dist/engine/observerToken.js.map +1 -0
- package/dist/engine/search.d.ts +4 -0
- package/dist/engine/search.d.ts.map +1 -1
- package/dist/engine/search.js +6 -1
- package/dist/engine/search.js.map +1 -1
- package/dist/engine/thread.d.ts +4 -3
- package/dist/engine/thread.d.ts.map +1 -1
- package/dist/engine/thread.js +8 -0
- package/dist/engine/thread.js.map +1 -1
- package/dist/engine/wsAuth.d.ts +2 -6
- package/dist/engine/wsAuth.d.ts.map +1 -1
- package/dist/engine/wsAuth.js +20 -12
- package/dist/engine/wsAuth.js.map +1 -1
- package/dist/engine/wsTransform.d.ts.map +1 -1
- package/dist/engine/wsTransform.js +52 -36
- package/dist/engine/wsTransform.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +4 -26
- package/dist/engine.js.map +1 -1
- package/dist/entrypoints/node.d.ts.map +1 -1
- package/dist/entrypoints/node.js +1 -14
- package/dist/entrypoints/node.js.map +1 -1
- package/dist/env.d.ts +3 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/auth.d.ts +8 -0
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +62 -0
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/logger.d.ts.map +1 -1
- package/dist/middleware/logger.js +4 -4
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/planLimits.d.ts.map +1 -1
- package/dist/middleware/planLimits.js +9 -2
- package/dist/middleware/planLimits.js.map +1 -1
- package/dist/middleware/rateLimit.d.ts.map +1 -1
- package/dist/middleware/rateLimit.js +13 -1
- package/dist/middleware/rateLimit.js.map +1 -1
- package/dist/middleware/usageTracker.d.ts.map +1 -1
- package/dist/middleware/usageTracker.js +2 -1
- package/dist/middleware/usageTracker.js.map +1 -1
- package/dist/node-reconnect.d.ts +13 -0
- package/dist/node-reconnect.d.ts.map +1 -0
- package/dist/node-reconnect.js +15 -0
- package/dist/node-reconnect.js.map +1 -0
- package/dist/ports/auth.d.ts +6 -2
- package/dist/ports/auth.d.ts.map +1 -1
- package/dist/ports/entitlements.d.ts +3 -1
- package/dist/ports/entitlements.d.ts.map +1 -1
- package/dist/ports/index.d.ts +1 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/presence.d.ts +1 -3
- package/dist/ports/presence.d.ts.map +1 -1
- package/dist/ports/realtime.d.ts +16 -68
- package/dist/ports/realtime.d.ts.map +1 -1
- package/dist/ports/realtime.js +9 -9
- package/dist/providers/static-entitlements.js +4 -4
- package/dist/providers/static-entitlements.js.map +1 -1
- package/dist/routes/action.d.ts.map +1 -1
- package/dist/routes/action.js +13 -5
- package/dist/routes/action.js.map +1 -1
- package/dist/routes/agent.d.ts.map +1 -1
- package/dist/routes/agent.js +107 -51
- package/dist/routes/agent.js.map +1 -1
- package/dist/routes/channel.d.ts.map +1 -1
- package/dist/routes/channel.js +39 -46
- package/dist/routes/channel.js.map +1 -1
- package/dist/routes/console.d.ts.map +1 -1
- package/dist/routes/console.js +39 -9
- package/dist/routes/console.js.map +1 -1
- package/dist/routes/deliveryRouting.d.ts.map +1 -1
- package/dist/routes/deliveryRouting.js +39 -20
- package/dist/routes/deliveryRouting.js.map +1 -1
- package/dist/routes/fanout.d.ts +1 -4
- package/dist/routes/fanout.d.ts.map +1 -1
- package/dist/routes/fanout.js +44 -55
- package/dist/routes/fanout.js.map +1 -1
- package/dist/routes/file.d.ts.map +1 -1
- package/dist/routes/file.js +15 -5
- package/dist/routes/file.js.map +1 -1
- package/dist/routes/inboundWebhook.js +1 -1
- package/dist/routes/inboundWebhook.js.map +1 -1
- package/dist/routes/message.d.ts.map +1 -1
- package/dist/routes/message.js +22 -4
- package/dist/routes/message.js.map +1 -1
- package/dist/routes/node.d.ts.map +1 -1
- package/dist/routes/node.js +61 -10
- package/dist/routes/node.js.map +1 -1
- package/dist/routes/observerToken.d.ts +4 -0
- package/dist/routes/observerToken.d.ts.map +1 -0
- package/dist/routes/observerToken.js +105 -0
- package/dist/routes/observerToken.js.map +1 -0
- package/dist/routes/presence.d.ts.map +1 -1
- package/dist/routes/presence.js +8 -12
- package/dist/routes/presence.js.map +1 -1
- package/dist/routes/reaction.d.ts.map +1 -1
- package/dist/routes/reaction.js +59 -7
- package/dist/routes/reaction.js.map +1 -1
- package/dist/routes/receipt.d.ts.map +1 -1
- package/dist/routes/receipt.js +20 -3
- package/dist/routes/receipt.js.map +1 -1
- package/dist/routes/search.d.ts.map +1 -1
- package/dist/routes/search.js +7 -4
- package/dist/routes/search.js.map +1 -1
- package/dist/routes/thread.d.ts.map +1 -1
- package/dist/routes/thread.js +20 -3
- package/dist/routes/thread.js.map +1 -1
- package/dist/routes/workspace.d.ts.map +1 -1
- package/dist/routes/workspace.js +20 -7
- package/dist/routes/workspace.js.map +1 -1
- package/package.json +7 -3
- package/dist/engine/resyncQuery.d.ts +0 -15
- package/dist/engine/resyncQuery.d.ts.map +0 -1
- package/dist/engine/resyncQuery.js +0 -125
- package/dist/engine/resyncQuery.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resyncQuery.d.ts","sourceRoot":"","sources":["../../src/engine/resyncQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CA4HpC"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { sql } from 'drizzle-orm';
|
|
2
|
-
import { transformForClient } from './wsTransform.js';
|
|
3
|
-
/**
|
|
4
|
-
* Replay events an agent missed while disconnected, for resync gaps larger than
|
|
5
|
-
* the in-memory ring buffer. Queries channel messages, DMs/group DMs, and
|
|
6
|
-
* reactions in the agent's scope created after `since`, and returns
|
|
7
|
-
* client-shaped event payloads in chronological order (each tagged
|
|
8
|
-
* `replayed: true`).
|
|
9
|
-
*
|
|
10
|
-
* Shared by every {@link ConnectionRegistry} adapter so the gap-fill is
|
|
11
|
-
* byte-identical across the Node (SQLite) and Cloudflare (D1) runtimes.
|
|
12
|
-
*/
|
|
13
|
-
export async function replayMissedEvents(db, agentId, workspaceId, since) {
|
|
14
|
-
const sinceMs = new Date(since).getTime();
|
|
15
|
-
if (!Number.isFinite(sinceMs)) {
|
|
16
|
-
// Invalid `since` — return nothing rather than running queries with NaN.
|
|
17
|
-
return [];
|
|
18
|
-
}
|
|
19
|
-
const sinceUnix = Math.floor(sinceMs / 1000);
|
|
20
|
-
const events = [];
|
|
21
|
-
const buildEvent = (type, data, channelId) => {
|
|
22
|
-
const event = {
|
|
23
|
-
type,
|
|
24
|
-
workspace_id: workspaceId,
|
|
25
|
-
channel_id: channelId,
|
|
26
|
-
data,
|
|
27
|
-
timestamp: new Date().toISOString(),
|
|
28
|
-
};
|
|
29
|
-
return transformForClient(event);
|
|
30
|
-
};
|
|
31
|
-
// Channel messages (including thread replies) after `since`.
|
|
32
|
-
const channelRows = await db.all(sql `
|
|
33
|
-
SELECT m.id, m.channel_id, m.agent_id, m.body, m.thread_id,
|
|
34
|
-
m.created_at, c.name AS channel_name, a.name AS agent_name
|
|
35
|
-
FROM messages m
|
|
36
|
-
JOIN channel_members cm ON cm.channel_id = m.channel_id AND cm.agent_id = ${agentId}
|
|
37
|
-
JOIN channels c ON c.id = m.channel_id
|
|
38
|
-
LEFT JOIN agents a ON a.id = m.agent_id
|
|
39
|
-
WHERE m.workspace_id = ${workspaceId}
|
|
40
|
-
AND m.created_at > ${sinceUnix}
|
|
41
|
-
ORDER BY m.created_at ASC
|
|
42
|
-
LIMIT 1000
|
|
43
|
-
`);
|
|
44
|
-
for (const row of channelRows) {
|
|
45
|
-
const data = {
|
|
46
|
-
id: row.id,
|
|
47
|
-
channel_id: row.channel_id,
|
|
48
|
-
channel_name: row.channel_name,
|
|
49
|
-
agent_id: row.agent_id,
|
|
50
|
-
from_name: row.agent_name,
|
|
51
|
-
text: row.body,
|
|
52
|
-
thread_id: row.thread_id,
|
|
53
|
-
created_at: new Date(row.created_at * 1000).toISOString(),
|
|
54
|
-
};
|
|
55
|
-
const type = row.thread_id ? 'thread.reply' : 'message.created';
|
|
56
|
-
events.push({
|
|
57
|
-
ts: row.created_at * 1000,
|
|
58
|
-
payload: { ...buildEvent(type, data, row.channel_id), replayed: true },
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
// DM + group DM messages after `since`.
|
|
62
|
-
const dmRows = await db.all(sql `
|
|
63
|
-
SELECT m.id, m.channel_id, m.agent_id, m.body, m.created_at,
|
|
64
|
-
a.name AS agent_name, dc.id AS conversation_id, dc.dm_type
|
|
65
|
-
FROM dm_conversations dc
|
|
66
|
-
JOIN dm_participants dp ON dp.conversation_id = dc.id AND dp.agent_id = ${agentId} AND dp.left_at IS NULL
|
|
67
|
-
JOIN messages m ON m.channel_id = dc.channel_id
|
|
68
|
-
LEFT JOIN agents a ON a.id = m.agent_id
|
|
69
|
-
WHERE dc.workspace_id = ${workspaceId}
|
|
70
|
-
AND m.created_at > ${sinceUnix}
|
|
71
|
-
ORDER BY m.created_at ASC
|
|
72
|
-
LIMIT 1000
|
|
73
|
-
`);
|
|
74
|
-
for (const row of dmRows) {
|
|
75
|
-
const type = row.dm_type === 'group' ? 'group_dm.received' : 'dm.received';
|
|
76
|
-
const data = {
|
|
77
|
-
id: row.id,
|
|
78
|
-
conversation_id: row.conversation_id,
|
|
79
|
-
agent_id: row.agent_id,
|
|
80
|
-
from_agent_id: row.agent_id,
|
|
81
|
-
from_name: row.agent_name,
|
|
82
|
-
text: row.body,
|
|
83
|
-
created_at: new Date(row.created_at * 1000).toISOString(),
|
|
84
|
-
};
|
|
85
|
-
events.push({
|
|
86
|
-
ts: row.created_at * 1000,
|
|
87
|
-
payload: { ...buildEvent(type, data, row.channel_id), replayed: true },
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
// Reaction additions after `since`.
|
|
91
|
-
const reactionRows = await db.all(sql `
|
|
92
|
-
SELECT r.message_id, r.emoji, r.created_at,
|
|
93
|
-
a.name AS agent_name,
|
|
94
|
-
m.channel_id, c.name AS channel_name, c.channel_type,
|
|
95
|
-
dc.dm_type, dc.id AS conversation_id
|
|
96
|
-
FROM reactions r
|
|
97
|
-
JOIN messages m ON m.id = r.message_id
|
|
98
|
-
JOIN channels c ON c.id = m.channel_id
|
|
99
|
-
LEFT JOIN dm_conversations dc ON dc.channel_id = m.channel_id
|
|
100
|
-
LEFT JOIN dm_participants dp ON dp.conversation_id = dc.id AND dp.agent_id = ${agentId} AND dp.left_at IS NULL
|
|
101
|
-
LEFT JOIN channel_members cm ON cm.channel_id = m.channel_id AND cm.agent_id = ${agentId}
|
|
102
|
-
LEFT JOIN agents a ON a.id = r.agent_id
|
|
103
|
-
WHERE m.workspace_id = ${workspaceId}
|
|
104
|
-
AND r.created_at > ${sinceUnix}
|
|
105
|
-
AND (cm.agent_id IS NOT NULL OR dp.agent_id IS NOT NULL)
|
|
106
|
-
ORDER BY r.created_at ASC
|
|
107
|
-
LIMIT 1000
|
|
108
|
-
`);
|
|
109
|
-
for (const row of reactionRows) {
|
|
110
|
-
const data = {
|
|
111
|
-
message_id: row.message_id,
|
|
112
|
-
emoji: row.emoji,
|
|
113
|
-
agent_name: row.agent_name,
|
|
114
|
-
channel_name: row.channel_name,
|
|
115
|
-
action: 'added',
|
|
116
|
-
};
|
|
117
|
-
events.push({
|
|
118
|
-
ts: row.created_at * 1000,
|
|
119
|
-
payload: { ...buildEvent('message.reacted', data, row.channel_id), replayed: true },
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
events.sort((a, b) => a.ts - b.ts);
|
|
123
|
-
return events.map((e) => e.payload);
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=resyncQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resyncQuery.js","sourceRoot":"","sources":["../../src/engine/resyncQuery.ts"],"names":[],"mappings":"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"}
|