volute 0.28.0 → 0.30.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.
- package/README.md +127 -18
- package/dist/{accept-666DIZX2.js → accept-E3PAH3QJ.js} +2 -2
- package/dist/{activity-events-BBIEA2F4.js → activity-events-BKBPPUBP.js} +2 -2
- package/dist/ai-service-VAJT5UBS.js +29 -0
- package/dist/api.d.ts +586 -529
- package/dist/{archive-UA4BDFXQ.js → archive-WWDBWYN2.js} +2 -2
- package/dist/{bridge-FQHZL3MC.js → bridge-RO37CUFM.js} +2 -2
- package/dist/{chat-M4SX42JD.js → chat-TCUNPFGO.js} +8 -8
- package/dist/{chunk-IAYBDWVG.js → chunk-2C2VXEBB.js} +147 -2
- package/dist/chunk-2NDZC3S7.js +1330 -0
- package/dist/{chunk-IKRVFPWU.js → chunk-7D47T4RB.js} +3 -2
- package/dist/chunk-A6TUJJ3L.js +19 -0
- package/dist/{chunk-AW7PFDVN.js → chunk-CVH6Y2YG.js} +1 -1
- package/dist/{chunk-XBLSAVJF.js → chunk-DTC6EH5I.js} +1 -1
- package/dist/chunk-EFP3PE6C.js +232 -0
- package/dist/{chunk-JGFVMROS.js → chunk-EFVHR7KH.js} +1 -1
- package/dist/{chunk-K5NAC55T.js → chunk-FSM45XD5.js} +2 -2
- package/dist/{chunk-LAC664WU.js → chunk-FXHXHI2A.js} +42 -24
- package/dist/{chunk-RKQEHRBB.js → chunk-G3GBKZGG.js} +1 -1
- package/dist/{chunk-H7OZRFJB.js → chunk-HHTXM4JT.js} +0 -49
- package/dist/{chunk-J4IBNXGJ.js → chunk-IKHDUZRH.js} +4 -3
- package/dist/{chunk-MD4C26II.js → chunk-JGFRDMR6.js} +1 -1
- package/dist/{chunk-POSXWWTA.js → chunk-LIRWLNAK.js} +26 -12
- package/dist/{chunk-NI5FFCCS.js → chunk-MDPCSXZ4.js} +35 -11
- package/dist/chunk-NSBFETWP.js +188 -0
- package/dist/{chunk-VIVMW2H2.js → chunk-P27RV5WM.js} +1 -1
- package/dist/{chunk-EHYDTZTF.js → chunk-P7VFDSSG.js} +2 -2
- package/dist/{chunk-AAPXKR5V.js → chunk-QVAQ5454.js} +181 -544
- package/dist/{chunk-HDN7MNGD.js → chunk-S5LR3XYJ.js} +1 -1
- package/dist/{chunk-2YP2TVDT.js → chunk-UPA6COHU.js} +5 -5
- package/dist/{chunk-AKPFNL7L.js → chunk-VGWJSNHS.js} +1 -1
- package/dist/{chunk-SGVNFZHW.js → chunk-W5OOPLNP.js} +3 -3
- package/dist/{chunk-2WPW7OT6.js → chunk-ZWKTUQEL.js} +1 -1
- package/dist/cli.js +25 -26
- package/dist/clock-G3ALCMLJ.js +263 -0
- package/dist/{cloud-sync-HDL6PHZI.js → cloud-sync-JV4LJOK3.js} +14 -12
- package/dist/connectors/discord-bridge.js +1 -1
- package/dist/connectors/slack-bridge.js +1 -1
- package/dist/connectors/telegram-bridge.js +1 -1
- package/dist/{conversations-M2K4253F.js → conversations-7KVQV7EZ.js} +9 -3
- package/dist/create-JTLS7GX3.js +70 -0
- package/dist/{create-QWV73WXD.js → create-VQSQHJQW.js} +1 -1
- package/dist/{daemon-client-I42FK2BF.js → daemon-client-BCTFGVCZ.js} +2 -2
- package/dist/{daemon-restart-G4B2OYAB.js → daemon-restart-4JGBHEJ4.js} +7 -7
- package/dist/daemon.js +1474 -1124
- package/dist/{db-IC4J52XQ.js → db-HMFPIRO2.js} +1 -1
- package/dist/{delete-4JYGD4VN.js → delete-JESHKE7F.js} +1 -1
- package/dist/down-NGBMGORS.js +14 -0
- package/dist/{env-YJMUMFIY.js → env-CLXXT7M2.js} +2 -2
- package/dist/{export-BOJQWBMA.js → export-EGA5M5PB.js} +3 -3
- package/dist/extension-WZ4SUPJB.js +174 -0
- package/dist/extensions-ECO4RPFQ.js +27 -0
- package/dist/{files-M546TKVN.js → files-4VEJDASH.js} +3 -3
- package/dist/{history-ALPTNB3I.js → history-EJMMLXDO.js} +17 -2
- package/dist/{import-SRTQXBGH.js → import-YCGPMBSI.js} +3 -3
- package/dist/{join-J4QU42DL.js → join-2GBJKZEN.js} +1 -1
- package/dist/{list-R73GENNL.js → list-Q6O7FGAN.js} +2 -2
- package/dist/{login-3QZNR2DF.js → login-RET5WESK.js} +2 -2
- package/dist/{login-BKP3AFWN.js → login-RL6AU2SM.js} +3 -3
- package/dist/{logout-T53VKCPU.js → logout-CGAGJN3L.js} +2 -2
- package/dist/{logout-IQK7FNEK.js → logout-JRPBEMMR.js} +3 -3
- package/dist/message-delivery-6YMVNOEC.js +28 -0
- package/dist/{migrate-registry-to-db-XC7T5B7P.js → migrate-registry-to-db-FK35IPEH.js} +1 -1
- package/dist/{mind-S5V6CK5W.js → mind-LUWRQUQ5.js} +17 -17
- package/dist/{mind-activity-tracker-EN6XNXPF.js → mind-activity-tracker-VYN2ZZ2M.js} +3 -3
- package/dist/{mind-list-UPJ75GPI.js → mind-list-V5WW5DUA.js} +2 -2
- package/dist/{mind-manager-S6ILZVX3.js → mind-manager-YFCOIAAX.js} +6 -6
- package/dist/{mind-sleep-BTSWQNAC.js → mind-sleep-R6PTNNW4.js} +2 -2
- package/dist/{mind-status-TK5AETEM.js → mind-status-I4ISFJ6I.js} +2 -2
- package/dist/{mind-wake-SBAKIDVP.js → mind-wake-67ZQEWAV.js} +2 -2
- package/dist/{package-CG4RWUGP.js → package-S2OAA5ZA.js} +11 -5
- package/dist/pages-watcher-Z3PKNROC.js +21 -0
- package/dist/{read-36UFXN3G.js → read-WQMPTSN2.js} +2 -2
- package/dist/{register-CHREOMJ3.js → register-NZDSTLP3.js} +3 -3
- package/dist/{registry-NDNOOYG4.js → registry-ODSALQQL.js} +1 -1
- package/dist/{reject-LXIZFJ4Q.js → reject-2HZOJEIJ.js} +2 -2
- package/dist/{restart-6ESL3NBO.js → restart-QHS3NT64.js} +2 -2
- package/dist/{sandbox-5BW5HPXM.js → sandbox-O5FUSF43.js} +3 -3
- package/dist/{seed-SSUCYYDF.js → seed-WUQMPLDM.js} +1 -1
- package/dist/{send-TAOEZ4NH.js → send-OAN3RYYY.js} +20 -6
- package/dist/{setup-JHL5ZEST.js → setup-QMDK5RZX.js} +2 -2
- package/dist/{setup-RXYVGGT7.js → setup-XJH3E7YM.js} +45 -14
- package/dist/{skill-AUAQTSP5.js → skill-FZIN4W4Q.js} +65 -3
- package/dist/skills/dreaming/references/INSTALL.md +3 -17
- package/dist/skills/volute-mind/SKILL.md +45 -27
- package/dist/sleep-manager-O7YQFCV5.js +30 -0
- package/dist/{split-TKJ5OT3P.js → split-EXYGGGQN.js} +1 -1
- package/dist/{sprout-UNT7LKKE.js → sprout-AXQ6H5DB.js} +8 -7
- package/dist/{start-EUJSS5R4.js → start-MTOVL6SY.js} +2 -2
- package/dist/{status-NQJYR4BG.js → status-ZRO37MWR.js} +5 -5
- package/dist/{stop-3XAITBBF.js → stop-OK5WEPVC.js} +2 -2
- package/dist/{systems-SMEFSHTA.js → systems-W3BBMSOZ.js} +5 -5
- package/dist/{tailscale-NY5MUMY3.js → tailscale-BM72RXCJ.js} +1 -1
- package/dist/{template-hash-BIMA4ILT.js → template-hash-3HOR4UAJ.js} +1 -1
- package/dist/up-BXUAIDXB.js +17 -0
- package/dist/{update-PTSH22AZ.js → update-PLPHMMZ2.js} +5 -5
- package/dist/{update-check-64FWC4Y2.js → update-check-CVCN7MF6.js} +2 -2
- package/dist/{upgrade-HA47CS4C.js → upgrade-I6NPCYUU.js} +1 -1
- package/dist/{version-notify-JDUF4HQJ.js → version-notify-2NTWVEHL.js} +18 -16
- package/dist/web-assets/assets/index--kREqKl9.js +72 -0
- package/dist/web-assets/assets/index-BXYTG0nJ.css +1 -0
- package/dist/web-assets/ext-theme.css +111 -0
- package/dist/web-assets/index.html +2 -2
- package/package.json +11 -5
- package/packages/extensions/notes/dist/ui/assets/index-DgawVO5g.css +1 -0
- package/packages/extensions/notes/dist/ui/assets/index-qUWoeC4c.js +2 -0
- package/packages/extensions/notes/dist/ui/index.html +14 -0
- package/packages/extensions/notes/skills/notes/SKILL.md +62 -0
- package/packages/extensions/notes/skills/notes/scripts/notes.mjs +185 -0
- package/packages/extensions/pages/dist/ui/assets/index-D0HyS-xQ.css +1 -0
- package/packages/extensions/pages/dist/ui/assets/index-tLTROSk5.js +2 -0
- package/packages/extensions/pages/dist/ui/index.html +14 -0
- package/packages/extensions/pages/skills/pages/SKILL.md +58 -0
- package/templates/_base/home/VOLUTE.md +1 -1
- package/templates/_base/src/lib/logger.ts +10 -49
- package/templates/_base/src/lib/router.ts +1 -9
- package/templates/claude/src/lib/stream-consumer.ts +1 -4
- package/templates/pi/src/lib/event-handler.ts +1 -14
- package/dist/chunk-P72MVS4R.js +0 -188
- package/dist/chunk-T6HKBWXZ.js +0 -23
- package/dist/chunk-ZYGKG6VC.js +0 -22
- package/dist/create-D7J73A6H.js +0 -45
- package/dist/down-LVBXEULC.js +0 -14
- package/dist/message-delivery-HV3S6HZV.js +0 -24
- package/dist/notes-XCER3I7M.js +0 -220
- package/dist/pages-KJDJX4TA.js +0 -36
- package/dist/publish-ZZB33WP4.js +0 -86
- package/dist/schedule-QTJMFATP.js +0 -154
- package/dist/skills/notes/SKILL.md +0 -34
- package/dist/sleep-manager-WMVG2VCL.js +0 -28
- package/dist/status-S7UUPNRW.js +0 -38
- package/dist/up-GM2JOH2Y.js +0 -17
- package/dist/web-assets/assets/index-BZGvToHi.css +0 -1
- package/dist/web-assets/assets/index-Cz4TrpzB.js +0 -75
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
daemonFetch
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-EFVHR7KH.js";
|
|
5
5
|
import {
|
|
6
6
|
parseArgs
|
|
7
7
|
} from "./chunk-D424ZQGI.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-HHTXM4JT.js";
|
|
9
9
|
import "./chunk-K3NQKI34.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/chat/bridge.ts
|
|
@@ -7,28 +7,28 @@ async function run(args) {
|
|
|
7
7
|
const subArgs = args.slice(1);
|
|
8
8
|
switch (subcommand) {
|
|
9
9
|
case "send":
|
|
10
|
-
await import("./send-
|
|
10
|
+
await import("./send-OAN3RYYY.js").then((m) => m.run(subArgs));
|
|
11
11
|
break;
|
|
12
12
|
case "list":
|
|
13
|
-
await import("./list-
|
|
13
|
+
await import("./list-Q6O7FGAN.js").then((m) => m.run(subArgs));
|
|
14
14
|
break;
|
|
15
15
|
case "read":
|
|
16
|
-
await import("./read-
|
|
16
|
+
await import("./read-WQMPTSN2.js").then((m) => m.run(subArgs));
|
|
17
17
|
break;
|
|
18
18
|
case "create":
|
|
19
|
-
await import("./create-
|
|
19
|
+
await import("./create-JTLS7GX3.js").then((m) => m.run(subArgs));
|
|
20
20
|
break;
|
|
21
21
|
case "bridge":
|
|
22
|
-
await import("./bridge-
|
|
22
|
+
await import("./bridge-RO37CUFM.js").then((m) => m.run(subArgs));
|
|
23
23
|
break;
|
|
24
24
|
case "files":
|
|
25
|
-
await import("./files-
|
|
25
|
+
await import("./files-4VEJDASH.js").then((m) => m.run(subArgs));
|
|
26
26
|
break;
|
|
27
27
|
case "accept":
|
|
28
|
-
await import("./accept-
|
|
28
|
+
await import("./accept-E3PAH3QJ.js").then((m) => m.run(subArgs));
|
|
29
29
|
break;
|
|
30
30
|
case "reject":
|
|
31
|
-
await import("./reject-
|
|
31
|
+
await import("./reject-2HZOJEIJ.js").then((m) => m.run(subArgs));
|
|
32
32
|
break;
|
|
33
33
|
case "--help":
|
|
34
34
|
case "-h":
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
subscribe
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-P27RV5WM.js";
|
|
5
5
|
import {
|
|
6
6
|
logger_default
|
|
7
7
|
} from "./chunk-YUIHSKR6.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
getDb,
|
|
13
13
|
messages,
|
|
14
14
|
users
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HHTXM4JT.js";
|
|
16
16
|
|
|
17
17
|
// src/lib/events/conversations.ts
|
|
18
18
|
import { randomUUID } from "crypto";
|
|
@@ -109,6 +109,53 @@ function publish(conversationId, event) {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
// src/lib/events/conversations.ts
|
|
112
|
+
async function migrateGroupDMsToChannels() {
|
|
113
|
+
const db = await getDb();
|
|
114
|
+
await db.transaction(async (tx) => {
|
|
115
|
+
const overloadedDMs = await tx.select({
|
|
116
|
+
conversationId: conversationParticipants.conversation_id,
|
|
117
|
+
count: sql`COUNT(*)`
|
|
118
|
+
}).from(conversationParticipants).innerJoin(conversations, eq(conversationParticipants.conversation_id, conversations.id)).where(eq(conversations.type, "dm")).groupBy(conversationParticipants.conversation_id).having(sql`COUNT(*) > 2`);
|
|
119
|
+
const dmIds = overloadedDMs.map((r) => r.conversationId);
|
|
120
|
+
await tx.update(conversations).set({
|
|
121
|
+
type: "channel",
|
|
122
|
+
name: sql`COALESCE(${conversations.name}, ${conversations.title})`
|
|
123
|
+
}).where(eq(conversations.type, "group"));
|
|
124
|
+
if (dmIds.length > 0) {
|
|
125
|
+
await tx.update(conversations).set({
|
|
126
|
+
type: "channel",
|
|
127
|
+
name: sql`COALESCE(${conversations.name}, ${conversations.title})`
|
|
128
|
+
}).where(inArray(conversations.id, dmIds));
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
await migrateChannelEntryTypes();
|
|
132
|
+
}
|
|
133
|
+
async function migrateChannelEntryTypes() {
|
|
134
|
+
const { existsSync, readdirSync, readFileSync, writeFileSync } = await import("fs");
|
|
135
|
+
const { join } = await import("path");
|
|
136
|
+
const home = join((await import("os")).homedir(), ".volute", "state");
|
|
137
|
+
if (!existsSync(home)) return;
|
|
138
|
+
for (const name of readdirSync(home)) {
|
|
139
|
+
const filePath = join(home, name, "channels.json");
|
|
140
|
+
if (!existsSync(filePath)) continue;
|
|
141
|
+
try {
|
|
142
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
143
|
+
const map = JSON.parse(raw);
|
|
144
|
+
let changed = false;
|
|
145
|
+
for (const entry of Object.values(map)) {
|
|
146
|
+
if (entry.type === "group") {
|
|
147
|
+
entry.type = "channel";
|
|
148
|
+
changed = true;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (changed) {
|
|
152
|
+
writeFileSync(filePath, `${JSON.stringify(map, null, 2)}
|
|
153
|
+
`);
|
|
154
|
+
}
|
|
155
|
+
} catch {
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
112
159
|
async function createConversation(mindName, channel, opts) {
|
|
113
160
|
const db = await getDb();
|
|
114
161
|
const id = randomUUID();
|
|
@@ -380,6 +427,101 @@ async function findDMConversation(mindName, participantIds) {
|
|
|
380
427
|
}
|
|
381
428
|
return null;
|
|
382
429
|
}
|
|
430
|
+
async function listConversationsForMind(mindName) {
|
|
431
|
+
const db = await getDb();
|
|
432
|
+
const byName = await db.select().from(conversations).where(eq(conversations.mind_name, mindName)).orderBy(desc(conversations.updated_at)).all();
|
|
433
|
+
const mindUser = await db.select({ id: users.id }).from(users).where(and(eq(users.username, mindName), eq(users.user_type, "mind"))).get();
|
|
434
|
+
const byNameIds = new Set(byName.map((c) => c.id));
|
|
435
|
+
let byParticipation = [];
|
|
436
|
+
if (mindUser) {
|
|
437
|
+
const participantRows = await db.select({ conversation_id: conversationParticipants.conversation_id }).from(conversationParticipants).where(eq(conversationParticipants.user_id, mindUser.id)).all();
|
|
438
|
+
const extraIds = participantRows.map((r) => r.conversation_id).filter((id) => !byNameIds.has(id));
|
|
439
|
+
if (extraIds.length > 0) {
|
|
440
|
+
byParticipation = await db.select().from(conversations).where(inArray(conversations.id, extraIds)).orderBy(desc(conversations.updated_at)).all();
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
const convs = [...byName, ...byParticipation].sort(
|
|
444
|
+
(a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime()
|
|
445
|
+
);
|
|
446
|
+
if (convs.length === 0) return [];
|
|
447
|
+
const convIds = convs.map((c) => c.id);
|
|
448
|
+
const rows = await db.select({
|
|
449
|
+
conversationId: conversationParticipants.conversation_id,
|
|
450
|
+
userId: users.id,
|
|
451
|
+
username: users.username,
|
|
452
|
+
userType: users.user_type,
|
|
453
|
+
role: conversationParticipants.role,
|
|
454
|
+
displayName: users.display_name,
|
|
455
|
+
description: users.description,
|
|
456
|
+
avatar: users.avatar
|
|
457
|
+
}).from(conversationParticipants).innerJoin(users, eq(conversationParticipants.user_id, users.id)).where(inArray(conversationParticipants.conversation_id, convIds));
|
|
458
|
+
const byConv = /* @__PURE__ */ new Map();
|
|
459
|
+
for (const r of rows) {
|
|
460
|
+
let arr = byConv.get(r.conversationId);
|
|
461
|
+
if (!arr) {
|
|
462
|
+
arr = [];
|
|
463
|
+
byConv.set(r.conversationId, arr);
|
|
464
|
+
}
|
|
465
|
+
arr.push({
|
|
466
|
+
userId: r.userId,
|
|
467
|
+
username: r.username,
|
|
468
|
+
userType: r.userType,
|
|
469
|
+
role: r.role,
|
|
470
|
+
displayName: r.displayName,
|
|
471
|
+
description: r.description,
|
|
472
|
+
avatar: r.avatar
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
const lastMsgIds = await db.select({
|
|
476
|
+
conversationId: messages.conversation_id,
|
|
477
|
+
maxId: sql`MAX(${messages.id})`
|
|
478
|
+
}).from(messages).where(inArray(messages.conversation_id, convIds)).groupBy(messages.conversation_id);
|
|
479
|
+
const byLastMsg = /* @__PURE__ */ new Map();
|
|
480
|
+
if (lastMsgIds.length > 0) {
|
|
481
|
+
const msgRows = await db.select().from(messages).where(
|
|
482
|
+
inArray(
|
|
483
|
+
messages.id,
|
|
484
|
+
lastMsgIds.map((r) => r.maxId)
|
|
485
|
+
)
|
|
486
|
+
);
|
|
487
|
+
for (const m of msgRows) {
|
|
488
|
+
let text = "";
|
|
489
|
+
try {
|
|
490
|
+
const parsed = JSON.parse(m.content);
|
|
491
|
+
const blocks = Array.isArray(parsed) ? parsed : [];
|
|
492
|
+
const textBlock = blocks.find((b) => b.type === "text");
|
|
493
|
+
if (textBlock && "text" in textBlock) text = textBlock.text;
|
|
494
|
+
} catch {
|
|
495
|
+
text = m.content;
|
|
496
|
+
}
|
|
497
|
+
byLastMsg.set(m.conversation_id, {
|
|
498
|
+
role: m.role,
|
|
499
|
+
senderName: m.sender_name,
|
|
500
|
+
text,
|
|
501
|
+
createdAt: m.created_at
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
return convs.map((c) => ({
|
|
506
|
+
...c,
|
|
507
|
+
participants: byConv.get(c.id) ?? [],
|
|
508
|
+
lastMessage: byLastMsg.get(c.id)
|
|
509
|
+
}));
|
|
510
|
+
}
|
|
511
|
+
async function isConversationForMind(mindName, conversationId) {
|
|
512
|
+
const db = await getDb();
|
|
513
|
+
const byName = await db.select({ id: conversations.id }).from(conversations).where(and(eq(conversations.id, conversationId), eq(conversations.mind_name, mindName))).get();
|
|
514
|
+
if (byName) return true;
|
|
515
|
+
const mindUser = await db.select({ id: users.id }).from(users).where(and(eq(users.username, mindName), eq(users.user_type, "mind"))).get();
|
|
516
|
+
if (!mindUser) return false;
|
|
517
|
+
const participant = await db.select({ conversation_id: conversationParticipants.conversation_id }).from(conversationParticipants).where(
|
|
518
|
+
and(
|
|
519
|
+
eq(conversationParticipants.conversation_id, conversationId),
|
|
520
|
+
eq(conversationParticipants.user_id, mindUser.id)
|
|
521
|
+
)
|
|
522
|
+
).get();
|
|
523
|
+
return !!participant;
|
|
524
|
+
}
|
|
383
525
|
async function deleteConversation(id) {
|
|
384
526
|
const db = await getDb();
|
|
385
527
|
await db.delete(conversations).where(eq(conversations.id, id));
|
|
@@ -451,6 +593,7 @@ export {
|
|
|
451
593
|
initWebhook,
|
|
452
594
|
subscribe2 as subscribe,
|
|
453
595
|
publish,
|
|
596
|
+
migrateGroupDMsToChannels,
|
|
454
597
|
createConversation,
|
|
455
598
|
getOrCreateConversation,
|
|
456
599
|
getConversation,
|
|
@@ -466,6 +609,8 @@ export {
|
|
|
466
609
|
getMessagesPaginated,
|
|
467
610
|
listConversationsWithParticipants,
|
|
468
611
|
findDMConversation,
|
|
612
|
+
listConversationsForMind,
|
|
613
|
+
isConversationForMind,
|
|
469
614
|
deleteConversation,
|
|
470
615
|
createChannel,
|
|
471
616
|
getChannelByName,
|