crewly 1.20.149 → 1.20.150
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/backend/backend/src/constants.d.ts +76 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +77 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +22 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +2 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +42 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +8 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +62 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js +3 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +94 -2
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +183 -2
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.d.ts +70 -0
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.js +78 -0
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +9 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/cloud-outbox.store.d.ts +136 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/cloud-outbox.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/cloud-outbox.store.js +207 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/cloud-outbox.store.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +62 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +111 -4
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/unified-log.d.ts +206 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/unified-log.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/unified-log.js +442 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/unified-log.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts +29 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/conversation-cloud-sync.service.d.ts +209 -0
- package/dist/backend/backend/src/services/cloud/conversation-cloud-sync.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/conversation-cloud-sync.service.js +607 -0
- package/dist/backend/backend/src/services/cloud/conversation-cloud-sync.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/conversation-ingest.contract.d.ts +167 -0
- package/dist/backend/backend/src/services/cloud/conversation-ingest.contract.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/conversation-ingest.contract.js +127 -0
- package/dist/backend/backend/src/services/cloud/conversation-ingest.contract.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +4 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +11 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +13 -0
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +13 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +14 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +34 -2
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +1 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts +10 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +27 -2
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +10 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +27 -4
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/types/slack.types.d.ts +12 -0
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +76 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +77 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +94 -2
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +183 -2
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js +9 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/cloud-outbox.store.d.ts +136 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/cloud-outbox.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/cloud-outbox.store.js +207 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/cloud-outbox.store.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +62 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +111 -4
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/unified-log.d.ts +206 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/unified-log.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/unified-log.js +442 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/unified-log.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/types.d.ts +29 -0
- package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +13 -0
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +14 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +34 -2
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/types/slack.types.d.ts +12 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/slack.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudOutboxStore — reads and trims the durable `cloud_outbox` that the
|
|
3
|
+
* `chat_messages` triggers fill, keeps the uploader's `cloud_sync_state`, and
|
|
4
|
+
* pages history for the first-sign-in backfill
|
|
5
|
+
* (specs/unified-conversations-cloud-store.md §A.4, §B.3, §B.4).
|
|
6
|
+
*
|
|
7
|
+
* The outbox is on disk, so a machine that is offline or signed out loses
|
|
8
|
+
* nothing: rows wait until the uploader drains them.
|
|
9
|
+
*
|
|
10
|
+
* @module services/chat-v2/sqlite/cloud-outbox.store
|
|
11
|
+
*/
|
|
12
|
+
/** Columns of an upload row. */
|
|
13
|
+
const UPLOAD_COLUMNS = `
|
|
14
|
+
m.rowid AS rowid, m.id, m.channel_id, m.sender_type, m.sender_id, m.content, m.content_type,
|
|
15
|
+
m.created_at, m.metadata, m.mentions, m.thread_id, m.source, m.direction, m.sender_kind,
|
|
16
|
+
m.agent_session, m.ext_ref, m.cloud_sync, c.name AS channel_name, c.type AS channel_type,
|
|
17
|
+
(SELECT member_session FROM chat_channel_members cm
|
|
18
|
+
WHERE cm.channel_id = m.channel_id ORDER BY cm.joined_at ASC, cm.member_session ASC LIMIT 1) AS lead_member
|
|
19
|
+
`;
|
|
20
|
+
/** SQLite's bound-parameter ceiling is 999 on old builds; stay well under it. */
|
|
21
|
+
const IN_CHUNK = 500;
|
|
22
|
+
/** SQLite-backed outbox + sync-state store. */
|
|
23
|
+
export class CloudOutboxStore {
|
|
24
|
+
db;
|
|
25
|
+
constructor(db) {
|
|
26
|
+
this.db = db;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The oldest outbox rows, in upload order.
|
|
30
|
+
*
|
|
31
|
+
* @param limit - Maximum rows
|
|
32
|
+
* @returns Rows ordered by `seq`
|
|
33
|
+
*/
|
|
34
|
+
peek(limit) {
|
|
35
|
+
const rows = this.db
|
|
36
|
+
.prepare('SELECT seq, message_id, op, enqueued_at FROM cloud_outbox ORDER BY seq ASC LIMIT ?')
|
|
37
|
+
.all(limit);
|
|
38
|
+
return rows.map((r) => ({ seq: r.seq, messageId: r.message_id, op: r.op, enqueuedAt: r.enqueued_at }));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Remove every outbox row up to and including `seq` (Cloud has them).
|
|
42
|
+
*
|
|
43
|
+
* @param seq - Highest acknowledged outbox seq
|
|
44
|
+
* @returns Rows removed
|
|
45
|
+
*/
|
|
46
|
+
ackThrough(seq) {
|
|
47
|
+
return this.db.prepare('DELETE FROM cloud_outbox WHERE seq <= ?').run(seq).changes;
|
|
48
|
+
}
|
|
49
|
+
/** @returns Number of rows waiting in the outbox */
|
|
50
|
+
count() {
|
|
51
|
+
return this.db.prepare('SELECT COUNT(*) AS n FROM cloud_outbox').get().n;
|
|
52
|
+
}
|
|
53
|
+
/** Empty the outbox (account switch / sign-out: the backfill re-sends the window). */
|
|
54
|
+
clear() {
|
|
55
|
+
this.db.exec('DELETE FROM cloud_outbox');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Keep the outbox bounded while nothing drains it: drop rows older than
|
|
59
|
+
* `olderThanMs`, then the oldest beyond `maxRows`.
|
|
60
|
+
*
|
|
61
|
+
* @param options.maxRows - Row cap
|
|
62
|
+
* @param options.olderThanMs - Drop rows enqueued before this epoch ms
|
|
63
|
+
* @returns Rows dropped (a history gap on Cloud when > 0)
|
|
64
|
+
*/
|
|
65
|
+
trim(options) {
|
|
66
|
+
let dropped = this.db.prepare('DELETE FROM cloud_outbox WHERE enqueued_at < ?').run(options.olderThanMs).changes;
|
|
67
|
+
const excess = this.count() - options.maxRows;
|
|
68
|
+
if (excess > 0) {
|
|
69
|
+
dropped += this.db
|
|
70
|
+
.prepare('DELETE FROM cloud_outbox WHERE seq IN (SELECT seq FROM cloud_outbox ORDER BY seq ASC LIMIT ?)')
|
|
71
|
+
.run(excess).changes;
|
|
72
|
+
}
|
|
73
|
+
return dropped;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Load messages by id, with their channel and attachment metadata.
|
|
77
|
+
*
|
|
78
|
+
* @param ids - Message ids
|
|
79
|
+
* @returns Map of id → row (ids with no row — deleted since — are absent)
|
|
80
|
+
*/
|
|
81
|
+
getMessages(ids) {
|
|
82
|
+
const out = new Map();
|
|
83
|
+
for (let i = 0; i < ids.length; i += IN_CHUNK) {
|
|
84
|
+
const chunk = ids.slice(i, i + IN_CHUNK);
|
|
85
|
+
if (chunk.length === 0)
|
|
86
|
+
continue;
|
|
87
|
+
const rows = this.db
|
|
88
|
+
.prepare(`SELECT ${UPLOAD_COLUMNS}
|
|
89
|
+
FROM chat_messages m LEFT JOIN chat_channels c ON c.id = m.channel_id
|
|
90
|
+
WHERE m.id IN (${chunk.map(() => '?').join(', ')})`)
|
|
91
|
+
.all(...chunk);
|
|
92
|
+
for (const row of this.withAttachments(rows))
|
|
93
|
+
out.set(row.id, row);
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* One page of syncable history for the backfill, oldest first.
|
|
99
|
+
*
|
|
100
|
+
* @param sinceMs - Only rows created at/after this epoch ms (the plan window)
|
|
101
|
+
* @param after - Resume after this position (exclusive), or null to start
|
|
102
|
+
* @param limit - Page size
|
|
103
|
+
* @returns Rows in `created_at, rowid` order
|
|
104
|
+
*/
|
|
105
|
+
backfillPage(sinceMs, after, limit) {
|
|
106
|
+
const params = [sinceMs];
|
|
107
|
+
let where = 'm.created_at >= ? AND COALESCE(m.cloud_sync, 1) = 1';
|
|
108
|
+
if (after) {
|
|
109
|
+
where += ' AND (m.created_at > ? OR (m.created_at = ? AND m.rowid > ?))';
|
|
110
|
+
params.push(after.createdAt, after.createdAt, after.rowid);
|
|
111
|
+
}
|
|
112
|
+
params.push(limit);
|
|
113
|
+
const rows = this.db
|
|
114
|
+
.prepare(`SELECT ${UPLOAD_COLUMNS}
|
|
115
|
+
FROM chat_messages m LEFT JOIN chat_channels c ON c.id = m.channel_id
|
|
116
|
+
WHERE ${where}
|
|
117
|
+
ORDER BY m.created_at ASC, m.rowid ASC
|
|
118
|
+
LIMIT ?`)
|
|
119
|
+
.all(...params);
|
|
120
|
+
return this.withAttachments(rows);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Read a sync-state value.
|
|
124
|
+
*
|
|
125
|
+
* @param key - State key
|
|
126
|
+
* @returns The value, or null
|
|
127
|
+
*/
|
|
128
|
+
getState(key) {
|
|
129
|
+
const row = this.db.prepare('SELECT v FROM cloud_sync_state WHERE k = ?').get(key);
|
|
130
|
+
return row?.v ?? null;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Write (or with `null`, remove) a sync-state value.
|
|
134
|
+
*
|
|
135
|
+
* @param key - State key
|
|
136
|
+
* @param value - Value, or null to delete
|
|
137
|
+
*/
|
|
138
|
+
setState(key, value) {
|
|
139
|
+
if (value === null) {
|
|
140
|
+
this.db.prepare('DELETE FROM cloud_sync_state WHERE k = ?').run(key);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
this.db
|
|
144
|
+
.prepare('INSERT INTO cloud_sync_state(k, v) VALUES (?, ?) ON CONFLICT(k) DO UPDATE SET v = excluded.v')
|
|
145
|
+
.run(key, value);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Remove every sync-state value except the ones listed.
|
|
149
|
+
*
|
|
150
|
+
* @param keep - Keys to preserve
|
|
151
|
+
*/
|
|
152
|
+
clearState(keep = []) {
|
|
153
|
+
if (keep.length === 0) {
|
|
154
|
+
this.db.exec('DELETE FROM cloud_sync_state');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
this.db.prepare(`DELETE FROM cloud_sync_state WHERE k NOT IN (${keep.map(() => '?').join(', ')})`).run(...keep);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Attach attachment metadata and map to the camel-case row shape.
|
|
161
|
+
*
|
|
162
|
+
* @param rows - Raw rows
|
|
163
|
+
* @returns Upload rows
|
|
164
|
+
*/
|
|
165
|
+
withAttachments(rows) {
|
|
166
|
+
if (rows.length === 0)
|
|
167
|
+
return [];
|
|
168
|
+
const byMessage = new Map();
|
|
169
|
+
const ids = rows.map((r) => r.id);
|
|
170
|
+
for (let i = 0; i < ids.length; i += IN_CHUNK) {
|
|
171
|
+
const chunk = ids.slice(i, i + IN_CHUNK);
|
|
172
|
+
const atts = this.db
|
|
173
|
+
.prepare(`SELECT message_id, kind, mime_type, size_bytes, original_name FROM chat_attachments
|
|
174
|
+
WHERE message_id IN (${chunk.map(() => '?').join(', ')})`)
|
|
175
|
+
.all(...chunk);
|
|
176
|
+
for (const a of atts) {
|
|
177
|
+
const list = byMessage.get(a.message_id) ?? [];
|
|
178
|
+
list.push({ kind: a.kind, mimeType: a.mime_type, sizeBytes: a.size_bytes, originalName: a.original_name });
|
|
179
|
+
byMessage.set(a.message_id, list);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return rows.map((r) => ({
|
|
183
|
+
rowid: r.rowid,
|
|
184
|
+
id: r.id,
|
|
185
|
+
channelId: r.channel_id,
|
|
186
|
+
senderType: r.sender_type,
|
|
187
|
+
senderId: r.sender_id,
|
|
188
|
+
content: r.content,
|
|
189
|
+
contentType: r.content_type,
|
|
190
|
+
createdAt: r.created_at,
|
|
191
|
+
metadata: r.metadata,
|
|
192
|
+
mentions: r.mentions,
|
|
193
|
+
threadId: r.thread_id,
|
|
194
|
+
source: r.source,
|
|
195
|
+
direction: r.direction,
|
|
196
|
+
senderKind: r.sender_kind,
|
|
197
|
+
agentSession: r.agent_session,
|
|
198
|
+
extRef: r.ext_ref,
|
|
199
|
+
cloudSync: r.cloud_sync,
|
|
200
|
+
channelName: r.channel_name ?? r.channel_id,
|
|
201
|
+
channelType: r.channel_type ?? 'dm',
|
|
202
|
+
leadMember: r.lead_member,
|
|
203
|
+
attachments: byMessage.get(r.id) ?? [],
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=cloud-outbox.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-outbox.store.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/chat-v2/sqlite/cloud-outbox.store.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @module services/chat-v2/sqlite/message.store
|
|
15
15
|
*/
|
|
16
|
-
import { type ChatContentType, type ChatMessageCursorPayload, type ChatMessageRow, type ChatSenderType } from '../types.js';
|
|
16
|
+
import { type ChatChannelType, type ChatContentType, type ChatMessageCursorPayload, type ChatMessageRow, type ChatSenderType } from '../types.js';
|
|
17
17
|
import type { ChatDatabase } from './chat-db.js';
|
|
18
|
+
import { type OwnerIdentity } from './unified-log.js';
|
|
18
19
|
/**
|
|
19
20
|
* Encode a pagination cursor to an opaque base64url string.
|
|
20
21
|
*
|
|
@@ -59,6 +60,18 @@ export interface MessageInsertInput {
|
|
|
59
60
|
/** Override the generated id (tests / deterministic callers). */
|
|
60
61
|
id?: string;
|
|
61
62
|
}
|
|
63
|
+
/** A timeline row: the message, its unified-log columns, and its channel. */
|
|
64
|
+
export interface AgentTimelineRow extends ChatMessageRow {
|
|
65
|
+
/** SQLite rowid — the tie-breaker for rows created in the same ms. */
|
|
66
|
+
rowid: number;
|
|
67
|
+
source: string | null;
|
|
68
|
+
direction: string | null;
|
|
69
|
+
sender_kind: string | null;
|
|
70
|
+
agent_session: string | null;
|
|
71
|
+
ext_ref: string | null;
|
|
72
|
+
channel_name: string;
|
|
73
|
+
channel_type: ChatChannelType;
|
|
74
|
+
}
|
|
62
75
|
/** Result of inserting a message — includes whether this was a dedupe hit. */
|
|
63
76
|
export interface MessageInsertResult {
|
|
64
77
|
row: ChatMessageRow;
|
|
@@ -80,7 +93,23 @@ export declare class MessageStore {
|
|
|
80
93
|
static readonly MAX_LIMIT = 100;
|
|
81
94
|
/** Default page size when caller didn't specify. */
|
|
82
95
|
static readonly DEFAULT_LIMIT = 50;
|
|
96
|
+
/** Who the owner is (Slack user / workspace) — feeds `sender_kind` and `ext_ref`. */
|
|
97
|
+
private ownerIdentity;
|
|
83
98
|
constructor(db: ChatDatabase);
|
|
99
|
+
/**
|
|
100
|
+
* Wire the owner-identity lookup used when deriving the unified-log
|
|
101
|
+
* columns. Called post-construction because Slack is configured after the
|
|
102
|
+
* chat store opens.
|
|
103
|
+
*
|
|
104
|
+
* @param provider - Returns the owner's identity, or null when unknown
|
|
105
|
+
*/
|
|
106
|
+
setOwnerIdentityProvider(provider: () => OwnerIdentity | null): void;
|
|
107
|
+
/**
|
|
108
|
+
* Resolve the owner identity without letting a faulty provider break a write.
|
|
109
|
+
*
|
|
110
|
+
* @returns The identity, or null
|
|
111
|
+
*/
|
|
112
|
+
private safeOwnerIdentity;
|
|
84
113
|
/**
|
|
85
114
|
* Insert a message into the channel.
|
|
86
115
|
*
|
|
@@ -297,6 +326,38 @@ export declare class MessageStore {
|
|
|
297
326
|
* @returns The latest Slack-origin root row, or null
|
|
298
327
|
*/
|
|
299
328
|
findLatestSlackRoot(channelId: string): ChatMessageRow | null;
|
|
329
|
+
/**
|
|
330
|
+
* Surface of the owner's most recent message in a channel — the Slack
|
|
331
|
+
* reply-affinity rule (spec §A.3 G6) mirrors an agent's answer to Slack only
|
|
332
|
+
* when the owner last spoke there.
|
|
333
|
+
*
|
|
334
|
+
* Rows an agent wrote as a `user` turn (`sender_kind = 'agent'`) and other
|
|
335
|
+
* people's rows (`human`) are not the owner and are skipped.
|
|
336
|
+
*
|
|
337
|
+
* @param channelId - The chat-v2 channel id
|
|
338
|
+
* @returns The source column (`slack`, `crewly-chat`, `cloud-talk`, …), or null
|
|
339
|
+
*/
|
|
340
|
+
latestOwnerTurnSource(channelId: string): string | null;
|
|
341
|
+
/**
|
|
342
|
+
* One page of an agent's merged timeline across every surface: rows whose
|
|
343
|
+
* `agent_session` is the agent, plus every row of the huddles the agent is
|
|
344
|
+
* a member of. Newest first (spec §A.5).
|
|
345
|
+
*
|
|
346
|
+
* @param agentSession - Agent session name
|
|
347
|
+
* @param options.before - Only rows strictly older than this (ms), or a
|
|
348
|
+
* `{createdAt, rowid}` position from a previous page
|
|
349
|
+
* @param options.limit - Page size (already clamped by the caller)
|
|
350
|
+
* @param options.sources - Restrict to these `source` values
|
|
351
|
+
* @returns Rows (with their channel's name/type and the rowid used for paging)
|
|
352
|
+
*/
|
|
353
|
+
listAgentTimeline(agentSession: string, options: {
|
|
354
|
+
before?: {
|
|
355
|
+
createdAt: number;
|
|
356
|
+
rowid?: number;
|
|
357
|
+
};
|
|
358
|
+
limit: number;
|
|
359
|
+
sources?: string[];
|
|
360
|
+
}): Array<AgentTimelineRow>;
|
|
300
361
|
findPendingSlackDelivery(maxAgeMs: number, nowMs?: number): ChatMessageRow[];
|
|
301
362
|
}
|
|
302
363
|
//# sourceMappingURL=message.store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.store.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/chat-v2/sqlite/message.store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"message.store.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/chat-v2/sqlite/message.store.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { randomUUID } from 'crypto';
|
|
17
17
|
import { CHAT_ERROR_CODES, ChatError, } from '../types.js';
|
|
18
|
+
import { deriveUnifiedColumns } from './unified-log.js';
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
// Constants — shared SELECT column list, single source of truth
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
@@ -76,9 +77,34 @@ export class MessageStore {
|
|
|
76
77
|
static MAX_LIMIT = 100;
|
|
77
78
|
/** Default page size when caller didn't specify. */
|
|
78
79
|
static DEFAULT_LIMIT = 50;
|
|
80
|
+
/** Who the owner is (Slack user / workspace) — feeds `sender_kind` and `ext_ref`. */
|
|
81
|
+
ownerIdentity = () => null;
|
|
79
82
|
constructor(db) {
|
|
80
83
|
this.db = db;
|
|
81
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Wire the owner-identity lookup used when deriving the unified-log
|
|
87
|
+
* columns. Called post-construction because Slack is configured after the
|
|
88
|
+
* chat store opens.
|
|
89
|
+
*
|
|
90
|
+
* @param provider - Returns the owner's identity, or null when unknown
|
|
91
|
+
*/
|
|
92
|
+
setOwnerIdentityProvider(provider) {
|
|
93
|
+
this.ownerIdentity = provider;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Resolve the owner identity without letting a faulty provider break a write.
|
|
97
|
+
*
|
|
98
|
+
* @returns The identity, or null
|
|
99
|
+
*/
|
|
100
|
+
safeOwnerIdentity() {
|
|
101
|
+
try {
|
|
102
|
+
return this.ownerIdentity();
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
82
108
|
/**
|
|
83
109
|
* Insert a message into the channel.
|
|
84
110
|
*
|
|
@@ -125,7 +151,7 @@ export class MessageStore {
|
|
|
125
151
|
// Channel existence check — FK catches it too but we want a typed error
|
|
126
152
|
// with a sensible status code.
|
|
127
153
|
const channel = this.db
|
|
128
|
-
.prepare('SELECT id, archived_at FROM chat_channels WHERE id = ?')
|
|
154
|
+
.prepare('SELECT id, archived_at, type, agent_session FROM chat_channels WHERE id = ?')
|
|
129
155
|
.get(input.channelId);
|
|
130
156
|
if (!channel) {
|
|
131
157
|
throw new ChatError(CHAT_ERROR_CODES.CHANNEL_NOT_FOUND, 404, `Channel ${input.channelId} not found`);
|
|
@@ -139,12 +165,31 @@ export class MessageStore {
|
|
|
139
165
|
FROM chat_messages
|
|
140
166
|
WHERE channel_id = ?`)
|
|
141
167
|
.get(input.channelId);
|
|
168
|
+
// Unified conversation log columns (spec §A.4). An agent's reply
|
|
169
|
+
// takes the surface of the latest inbound turn it answers.
|
|
170
|
+
const latestInboundSource = input.senderType === 'agent'
|
|
171
|
+
? (this.db
|
|
172
|
+
.prepare(`SELECT source FROM chat_messages
|
|
173
|
+
WHERE channel_id = ? AND sender_type = 'user' AND source IS NOT NULL
|
|
174
|
+
ORDER BY seq DESC LIMIT 1`)
|
|
175
|
+
.get(input.channelId)?.source ?? null)
|
|
176
|
+
: null;
|
|
177
|
+
const unified = deriveUnifiedColumns({
|
|
178
|
+
senderType: input.senderType,
|
|
179
|
+
senderId: input.senderId,
|
|
180
|
+
metadata: metadataObj,
|
|
181
|
+
mentions: input.mentions ?? [],
|
|
182
|
+
channel: { id: channel.id, type: channel.type ?? 'dm', agentSession: channel.agent_session ?? '' },
|
|
183
|
+
latestInboundSource,
|
|
184
|
+
owner: this.safeOwnerIdentity(),
|
|
185
|
+
});
|
|
142
186
|
this.db
|
|
143
187
|
.prepare(`INSERT INTO chat_messages
|
|
144
188
|
(id, channel_id, seq, sender_type, sender_id, content, content_type,
|
|
145
|
-
created_at, metadata, mentions, thread_id
|
|
146
|
-
|
|
147
|
-
|
|
189
|
+
created_at, metadata, mentions, thread_id,
|
|
190
|
+
source, direction, sender_kind, agent_session, ext_ref, cloud_sync)
|
|
191
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
192
|
+
.run(id, input.channelId, seqRow.next_seq, input.senderType, input.senderId, input.content, contentType, createdAt, metadataJson, mentionsJson, threadId, unified.source, unified.direction, unified.senderKind, unified.agentSession, unified.extRef ? JSON.stringify(unified.extRef) : null, unified.cloudSync);
|
|
148
193
|
// Touch last_message_at on the parent channel.
|
|
149
194
|
this.db
|
|
150
195
|
.prepare(`UPDATE chat_channels
|
|
@@ -571,6 +616,68 @@ export class MessageStore {
|
|
|
571
616
|
.get(channelId);
|
|
572
617
|
return row ?? null;
|
|
573
618
|
}
|
|
619
|
+
/**
|
|
620
|
+
* Surface of the owner's most recent message in a channel — the Slack
|
|
621
|
+
* reply-affinity rule (spec §A.3 G6) mirrors an agent's answer to Slack only
|
|
622
|
+
* when the owner last spoke there.
|
|
623
|
+
*
|
|
624
|
+
* Rows an agent wrote as a `user` turn (`sender_kind = 'agent'`) and other
|
|
625
|
+
* people's rows (`human`) are not the owner and are skipped.
|
|
626
|
+
*
|
|
627
|
+
* @param channelId - The chat-v2 channel id
|
|
628
|
+
* @returns The source column (`slack`, `crewly-chat`, `cloud-talk`, …), or null
|
|
629
|
+
*/
|
|
630
|
+
latestOwnerTurnSource(channelId) {
|
|
631
|
+
const row = this.db
|
|
632
|
+
.prepare(`SELECT source FROM chat_messages
|
|
633
|
+
WHERE channel_id = ? AND sender_type = 'user'
|
|
634
|
+
AND COALESCE(sender_kind, 'owner') = 'owner'
|
|
635
|
+
ORDER BY seq DESC
|
|
636
|
+
LIMIT 1`)
|
|
637
|
+
.get(channelId);
|
|
638
|
+
return row?.source ?? null;
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* One page of an agent's merged timeline across every surface: rows whose
|
|
642
|
+
* `agent_session` is the agent, plus every row of the huddles the agent is
|
|
643
|
+
* a member of. Newest first (spec §A.5).
|
|
644
|
+
*
|
|
645
|
+
* @param agentSession - Agent session name
|
|
646
|
+
* @param options.before - Only rows strictly older than this (ms), or a
|
|
647
|
+
* `{createdAt, rowid}` position from a previous page
|
|
648
|
+
* @param options.limit - Page size (already clamped by the caller)
|
|
649
|
+
* @param options.sources - Restrict to these `source` values
|
|
650
|
+
* @returns Rows (with their channel's name/type and the rowid used for paging)
|
|
651
|
+
*/
|
|
652
|
+
listAgentTimeline(agentSession, options) {
|
|
653
|
+
const params = [agentSession, agentSession];
|
|
654
|
+
let where = `(m.agent_session = ? OR m.channel_id IN (
|
|
655
|
+
SELECT channel_id FROM chat_channel_members WHERE member_session = ?))`;
|
|
656
|
+
if (options.before) {
|
|
657
|
+
if (options.before.rowid !== undefined) {
|
|
658
|
+
where += ' AND (m.created_at < ? OR (m.created_at = ? AND m.rowid < ?))';
|
|
659
|
+
params.push(options.before.createdAt, options.before.createdAt, options.before.rowid);
|
|
660
|
+
}
|
|
661
|
+
else {
|
|
662
|
+
where += ' AND m.created_at < ?';
|
|
663
|
+
params.push(options.before.createdAt);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
if (options.sources && options.sources.length > 0) {
|
|
667
|
+
where += ` AND m.source IN (${options.sources.map(() => '?').join(', ')})`;
|
|
668
|
+
params.push(...options.sources);
|
|
669
|
+
}
|
|
670
|
+
params.push(options.limit);
|
|
671
|
+
return this.db
|
|
672
|
+
.prepare(`SELECT m.rowid AS rowid, ${MESSAGE_SELECT_COLUMNS.split(',').map((c) => `m.${c.trim()}`).join(', ')},
|
|
673
|
+
m.source, m.direction, m.sender_kind, m.agent_session, m.ext_ref,
|
|
674
|
+
c.name AS channel_name, c.type AS channel_type
|
|
675
|
+
FROM chat_messages m JOIN chat_channels c ON c.id = m.channel_id
|
|
676
|
+
WHERE ${where}
|
|
677
|
+
ORDER BY m.created_at DESC, m.rowid DESC
|
|
678
|
+
LIMIT ?`)
|
|
679
|
+
.all(...params);
|
|
680
|
+
}
|
|
574
681
|
findPendingSlackDelivery(maxAgeMs, nowMs) {
|
|
575
682
|
const cutoff = (nowMs ?? Date.now()) - maxAgeMs;
|
|
576
683
|
const rows = this.db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.store.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/chat-v2/sqlite/message.store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message.store.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/chat-v2/sqlite/message.store.ts"],"names":[],"mappings":"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"}
|