@okostream/mcp 0.13.1 → 0.13.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/server.js +14 -4
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -116230,6 +116230,15 @@ if (!env.firebase.chatDatabaseURL) {
|
|
|
116230
116230
|
throw new Error("OKO MCP: chat database URL is not configured. Set OKO_FIREBASE_CHAT_DB_URL (or keep the bundled default) \u2014 chat paths do not exist in the main database.");
|
|
116231
116231
|
}
|
|
116232
116232
|
var chatRtdb = getDatabase(firebaseApp, env.firebase.chatDatabaseURL);
|
|
116233
|
+
async function serverNowMs(db = chatRtdb) {
|
|
116234
|
+
const offset = await new Promise((resolve3) => {
|
|
116235
|
+
onValue(ref(db, ".info/serverTimeOffset"), (snap) => {
|
|
116236
|
+
const v = snap.val();
|
|
116237
|
+
resolve3(typeof v === "number" && Number.isFinite(v) ? v : 0);
|
|
116238
|
+
}, () => resolve3(0), { onlyOnce: true });
|
|
116239
|
+
});
|
|
116240
|
+
return Date.now() + offset;
|
|
116241
|
+
}
|
|
116233
116242
|
var functions = getFunctions(firebaseApp, "us-central1");
|
|
116234
116243
|
|
|
116235
116244
|
// build/scopes.js
|
|
@@ -116291,7 +116300,7 @@ function sanitizeScopes(scopes) {
|
|
|
116291
116300
|
}
|
|
116292
116301
|
|
|
116293
116302
|
// build/version.js
|
|
116294
|
-
var OKO_MCP_VERSION = "0.13.
|
|
116303
|
+
var OKO_MCP_VERSION = "0.13.2";
|
|
116295
116304
|
|
|
116296
116305
|
// build/auth.js
|
|
116297
116306
|
var state = null;
|
|
@@ -118346,7 +118355,7 @@ function registerChatTools(server2) {
|
|
|
118346
118355
|
const { uid } = await authed(["chat:moderate"]);
|
|
118347
118356
|
await readEvent(eventId, uid, "moderate");
|
|
118348
118357
|
requireConfirm(confirm, "oko_delete_chat_message", { eventId, messageId });
|
|
118349
|
-
await set(ref(chatRtdb, `mod/deleted/${eventId}/${messageId}`), { deletedAt: serverTimestamp(), ts:
|
|
118358
|
+
await set(ref(chatRtdb, `mod/deleted/${eventId}/${messageId}`), { deletedAt: serverTimestamp(), ts: await serverNowMs(), by: uid, reason: "manual" });
|
|
118350
118359
|
return textResult({ eventId, messageId, deleted: true });
|
|
118351
118360
|
});
|
|
118352
118361
|
server2.registerTool("oko_mute_user", {
|
|
@@ -118364,7 +118373,7 @@ function registerChatTools(server2) {
|
|
|
118364
118373
|
const actor = await authed(["chat:moderate"]);
|
|
118365
118374
|
await readEvent(eventId, actor.uid, "moderate");
|
|
118366
118375
|
requireConfirm(confirm, "oko_mute_user", { eventId, targetUid, minutes });
|
|
118367
|
-
await set(ref(chatRtdb, `mutes/${eventId}/${targetUid}`), { until:
|
|
118376
|
+
await set(ref(chatRtdb, `mutes/${eventId}/${targetUid}`), { until: await serverNowMs() + minutes * 6e4, by: actor.uid, reason: "manual" });
|
|
118368
118377
|
return textResult({ eventId, targetUid, mutedMinutes: minutes });
|
|
118369
118378
|
});
|
|
118370
118379
|
server2.registerTool("oko_ban_user", {
|
|
@@ -118386,9 +118395,10 @@ function registerChatTools(server2) {
|
|
|
118386
118395
|
const messagesSnap = await get(query(ref(chatRtdb, `messages/${eventId}`), limitToLast(500)));
|
|
118387
118396
|
const messages = messagesSnap.val() ?? {};
|
|
118388
118397
|
const deletes = {};
|
|
118398
|
+
const nowMs = await serverNowMs();
|
|
118389
118399
|
for (const [messageId, message] of Object.entries(messages)) {
|
|
118390
118400
|
if (message.uid === targetUid)
|
|
118391
|
-
deletes[`mod/deleted/${eventId}/${messageId}`] = { deletedAt: serverTimestamp(), ts:
|
|
118401
|
+
deletes[`mod/deleted/${eventId}/${messageId}`] = { deletedAt: serverTimestamp(), ts: nowMs, by: actor.uid, reason: "ban" };
|
|
118392
118402
|
}
|
|
118393
118403
|
if (Object.keys(deletes).length > 0)
|
|
118394
118404
|
await update(ref(chatRtdb), deletes);
|