@automagik/omni 2.260910.2 → 2.260910.3
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/commands/events.d.ts +4 -0
- package/dist/commands/events.d.ts.map +1 -1
- package/dist/index.js +23 -3
- package/dist/server/index.js +42 -20
- package/package.json +1 -1
|
@@ -197,6 +197,10 @@ export interface FollowParams {
|
|
|
197
197
|
isStopped?: () => boolean;
|
|
198
198
|
/** Line sink — defaults to output.raw (stdout). Injected by tests. */
|
|
199
199
|
emit?: (line: string) => void;
|
|
200
|
+
/** Consecutive transport failures tolerated before giving up (default 5). */
|
|
201
|
+
maxRetries?: number;
|
|
202
|
+
/** First backoff delay; doubles per retry up to 30s (default 1000). */
|
|
203
|
+
retryBaseMs?: number;
|
|
200
204
|
}
|
|
201
205
|
/**
|
|
202
206
|
* The `omni events follow` loop: pull a page from the stored cursor, print
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,KAAK,mBAAmB,EAAsB,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuMpC,2DAA2D;AAC3D,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA+BD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKzE;AAyCD,wDAAwD;AACxD,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,iBAAe,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAe1G;AAED,kFAAkF;AAClF,iBAAS,kBAAkB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUhG;AAED,iBAAS,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzE;AAyED,eAAO,MAAM,WAAW;;;;CAA+D,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAEA;AAoBD,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAQvF;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CACvE,CAAC;AAEF,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAQD,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAG9E;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAc9F;AA6KD;;;;;;GAMG;AACH,KAAK,YAAY,GAAG,KAAK,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC;AAc5E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAYzE;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,mBAAmB,EAAE,GAChC,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA4BvG;AAMD,0EAA0E;AAC1E,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAepH;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW/E;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,GAAG,EAAE,OAAO,CAAC;IACb,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,sEAAsE;IACtE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8BD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CxE;AAqFD,wBAAgB,mBAAmB,IAAI,OAAO,CA+W7C"}
|
package/dist/index.js
CHANGED
|
@@ -137139,7 +137139,7 @@ import { fileURLToPath } from "url";
|
|
|
137139
137139
|
// package.json
|
|
137140
137140
|
var package_default = {
|
|
137141
137141
|
name: "@automagik/omni",
|
|
137142
|
-
version: "2.260910.
|
|
137142
|
+
version: "2.260910.3",
|
|
137143
137143
|
repository: {
|
|
137144
137144
|
type: "git",
|
|
137145
137145
|
url: "git+https://github.com/automagik-dev/omni.git",
|
|
@@ -144289,13 +144289,32 @@ function summarizeConsumerRow(row) {
|
|
|
144289
144289
|
updatedAt: row.updatedAt
|
|
144290
144290
|
};
|
|
144291
144291
|
}
|
|
144292
|
+
var sleep4 = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
|
|
144293
|
+
var isTransportError = (err2) => !(err2 instanceof Error && err2.message.startsWith("API returned "));
|
|
144294
|
+
async function pullWithRetry(params) {
|
|
144295
|
+
const maxRetries = params.maxRetries ?? 5;
|
|
144296
|
+
const baseMs = params.retryBaseMs ?? 1000;
|
|
144297
|
+
const path = `/${encodeURIComponent(params.consumer)}/pull?limit=${params.limit}&waitMs=${params.waitMs}`;
|
|
144298
|
+
for (let attempt = 0;; attempt++) {
|
|
144299
|
+
try {
|
|
144300
|
+
return await consumersApiRequest(path, { method: "POST" });
|
|
144301
|
+
} catch (err2) {
|
|
144302
|
+
if (!isTransportError(err2) || attempt >= maxRetries || params.isStopped?.())
|
|
144303
|
+
throw err2;
|
|
144304
|
+
const delay = Math.min(baseMs * 2 ** attempt, 30000);
|
|
144305
|
+
process.stderr.write(`\u26A0 Pull failed (${errorMessage(err2)}); reconnecting in ${delay}ms (${attempt + 1}/${maxRetries})
|
|
144306
|
+
`);
|
|
144307
|
+
await sleep4(delay);
|
|
144308
|
+
}
|
|
144309
|
+
}
|
|
144310
|
+
}
|
|
144292
144311
|
async function followConsumer(params) {
|
|
144293
144312
|
const emit = params.emit ?? raw;
|
|
144294
144313
|
let acked = -1;
|
|
144295
144314
|
for (;; ) {
|
|
144296
144315
|
if (params.isStopped?.())
|
|
144297
144316
|
return;
|
|
144298
|
-
const page = await
|
|
144317
|
+
const page = await pullWithRetry(params);
|
|
144299
144318
|
for (const item of page.items) {
|
|
144300
144319
|
emit(JSON.stringify(item));
|
|
144301
144320
|
}
|
|
@@ -144316,7 +144335,7 @@ async function followConsumer(params) {
|
|
|
144316
144335
|
return;
|
|
144317
144336
|
}
|
|
144318
144337
|
if (!progressed && params.waitMs < 1000) {
|
|
144319
|
-
await
|
|
144338
|
+
await sleep4(1000);
|
|
144320
144339
|
}
|
|
144321
144340
|
}
|
|
144322
144341
|
}
|
|
@@ -144463,6 +144482,7 @@ function createEventsCommand() {
|
|
|
144463
144482
|
});
|
|
144464
144483
|
} catch (err2) {
|
|
144465
144484
|
error(`Failed to follow consumer: ${errorMessage(err2)}`);
|
|
144485
|
+
process.exitCode = 1;
|
|
144466
144486
|
} finally {
|
|
144467
144487
|
processEvents.off("SIGINT", shutdown);
|
|
144468
144488
|
processEvents.off("SIGTERM", shutdown);
|
package/dist/server/index.js
CHANGED
|
@@ -251595,7 +251595,7 @@ var init_sentry_scrub = __esm(() => {
|
|
|
251595
251595
|
var require_package7 = __commonJS((exports, module) => {
|
|
251596
251596
|
module.exports = {
|
|
251597
251597
|
name: "@omni/api",
|
|
251598
|
-
version: "2.260910.
|
|
251598
|
+
version: "2.260910.3",
|
|
251599
251599
|
private: true,
|
|
251600
251600
|
type: "module",
|
|
251601
251601
|
exports: {
|
|
@@ -363754,6 +363754,15 @@ function maybeUpdateRecency(services, instanceId, chatId, rawPayload, payload, p
|
|
|
363754
363754
|
log90.debug("Failed to update instance lastMessageAt (non-critical)", { error: String(error3) });
|
|
363755
363755
|
});
|
|
363756
363756
|
}
|
|
363757
|
+
async function linkJournalRow(db2, eventId, link) {
|
|
363758
|
+
if (!isValidUuid(eventId))
|
|
363759
|
+
return;
|
|
363760
|
+
await scopedHandle(db2).update(omniEvents).set({
|
|
363761
|
+
chatUuid: link.chatUuid,
|
|
363762
|
+
canonicalChatId: link.canonicalChatId,
|
|
363763
|
+
personId: sql`coalesce(${omniEvents.personId}, ${link.personId})`
|
|
363764
|
+
}).where(eq(omniEvents.id, eventId));
|
|
363765
|
+
}
|
|
363757
363766
|
async function resolveOrCreateChat(services, instanceId, chatExternalId, chatType, channel5, effectiveName, canonicalId, rawPayload, trustedTenantId) {
|
|
363758
363767
|
const resolvedPhoneJid = rawPayload?.resolvedPhoneJid;
|
|
363759
363768
|
if (chatExternalId.endsWith("@lid") && resolvedPhoneJid) {
|
|
@@ -363868,6 +363877,7 @@ async function handleMessageReceived(services, payload, metadata, eventTimestamp
|
|
|
363868
363877
|
}
|
|
363869
363878
|
await maybeRecordParticipantActivity(services, chat2.id, payload.from);
|
|
363870
363879
|
maybeUpdateRecency(services, metadata.instanceId, chat2.id, rawPayload, payload, platformTimestamp ?? new Date(eventTimestamp), trustedTenantId);
|
|
363880
|
+
return { chatUuid: chat2.id, canonicalChatId: chat2.canonicalId ?? null, personId: personId ?? null };
|
|
363871
363881
|
}
|
|
363872
363882
|
function logMessageReceivedError(payload, error3) {
|
|
363873
363883
|
const rawPayload = payload.rawPayload;
|
|
@@ -363963,7 +363973,12 @@ async function setupMessagePersistence(eventBus, services) {
|
|
|
363963
363973
|
try {
|
|
363964
363974
|
const workMetadata = { ...metadata, instanceId };
|
|
363965
363975
|
const identity = await resolveSenderIdentityForWorkItem(services, payload, workMetadata, metadata.channelType ?? "whatsapp", trustedTenantId);
|
|
363966
|
-
await runConsumerInTenantContext(services.db, event, () => handleMessageReceived(services, payload, workMetadata, event.timestamp, trustedTenantId, identity));
|
|
363976
|
+
const journalLink = await runConsumerInTenantContext(services.db, event, () => handleMessageReceived(services, payload, workMetadata, event.timestamp, trustedTenantId, identity));
|
|
363977
|
+
if (journalLink) {
|
|
363978
|
+
await runTenantWorkDb(services.db, trustedTenantId, () => linkJournalRow(services.db, event.id, journalLink)).catch((err2) => {
|
|
363979
|
+
log90.debug("Failed to link journal row (non-critical)", { eventId: event.id, error: String(err2) });
|
|
363980
|
+
});
|
|
363981
|
+
}
|
|
363967
363982
|
if (sentryEnabled()) {
|
|
363968
363983
|
exports_public_api2.count("messages.received", 1, {
|
|
363969
363984
|
attributes: { channel_type: metadata.channelType ?? "whatsapp" }
|
|
@@ -364249,8 +364264,11 @@ async function detectStartupGaps(services) {
|
|
|
364249
364264
|
var log90, CONTENT_TYPE_MAP, INTERNAL_JID_SUFFIXES, MEDIA_BADGES, OUTBOUND_MEDIA_TYPES;
|
|
364250
364265
|
var init_message_persistence = __esm(() => {
|
|
364251
364266
|
init_src();
|
|
364267
|
+
init_src5();
|
|
364252
364268
|
init_esm6();
|
|
364269
|
+
init_drizzle_orm();
|
|
364253
364270
|
init_sentry_scrub();
|
|
364271
|
+
init_tenant_scope();
|
|
364254
364272
|
init_worker_tenant_context();
|
|
364255
364273
|
init_canonical_handle();
|
|
364256
364274
|
init_loader2();
|
|
@@ -397699,14 +397717,14 @@ function mapContentType2(contentType) {
|
|
|
397699
397717
|
function eventIdInsert(eventId) {
|
|
397700
397718
|
return eventId && isValidUuid(eventId) ? { id: eventId } : {};
|
|
397701
397719
|
}
|
|
397702
|
-
async function
|
|
397720
|
+
async function resolveChatLink(db2, instanceId, chatId) {
|
|
397703
397721
|
if (!instanceId || !chatId)
|
|
397704
|
-
return
|
|
397722
|
+
return NO_CHAT_LINK;
|
|
397705
397723
|
try {
|
|
397706
|
-
const
|
|
397707
|
-
return chat2
|
|
397724
|
+
const chat2 = await new ChatService(db2, null).findByExternalIdSmart(instanceId, chatId);
|
|
397725
|
+
return chat2 ? { chatUuid: chat2.id, canonicalChatId: chat2.canonicalId ?? null } : NO_CHAT_LINK;
|
|
397708
397726
|
} catch {
|
|
397709
|
-
return
|
|
397727
|
+
return NO_CHAT_LINK;
|
|
397710
397728
|
}
|
|
397711
397729
|
}
|
|
397712
397730
|
async function resolvePersonId2(db2, candidate) {
|
|
@@ -397742,7 +397760,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397742
397760
|
try {
|
|
397743
397761
|
await runConsumerInTenantContext(db2, event, async () => {
|
|
397744
397762
|
const sdb = scopedHandle(db2);
|
|
397745
|
-
const
|
|
397763
|
+
const chatLink = await resolveChatLink(sdb, metadata.instanceId, payload.chatId);
|
|
397746
397764
|
const columns2 = {
|
|
397747
397765
|
externalId: payload.externalId,
|
|
397748
397766
|
channel: mapChannelType(metadata.channelType),
|
|
@@ -397767,7 +397785,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397767
397785
|
agentId: metadata.agentId ?? null,
|
|
397768
397786
|
causationId: metadata.causationId ?? null,
|
|
397769
397787
|
conversationId: null,
|
|
397770
|
-
|
|
397788
|
+
...chatLink
|
|
397771
397789
|
};
|
|
397772
397790
|
await sdb.insert(omniEvents).values({ ...eventIdInsert(event.id), ...columns2 }).onConflictDoUpdate({ target: omniEvents.id, set: columns2 });
|
|
397773
397791
|
});
|
|
@@ -397792,7 +397810,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397792
397810
|
try {
|
|
397793
397811
|
await runConsumerInTenantContext(db2, event, async () => {
|
|
397794
397812
|
const sdb = scopedHandle(db2);
|
|
397795
|
-
const
|
|
397813
|
+
const chatLink = await resolveChatLink(sdb, metadata.instanceId, payload.chatId);
|
|
397796
397814
|
const newEvent = {
|
|
397797
397815
|
...eventIdInsert(event.id),
|
|
397798
397816
|
externalId: payload.externalId,
|
|
@@ -397821,7 +397839,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397821
397839
|
agentId: metadata.agentId ?? null,
|
|
397822
397840
|
causationId: metadata.causationId ?? null,
|
|
397823
397841
|
conversationId: null,
|
|
397824
|
-
|
|
397842
|
+
...chatLink
|
|
397825
397843
|
};
|
|
397826
397844
|
await sdb.insert(omniEvents).values(newEvent).onConflictDoNothing({ target: omniEvents.id });
|
|
397827
397845
|
});
|
|
@@ -397847,7 +397865,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397847
397865
|
status: "completed"
|
|
397848
397866
|
}).where(eq(omniEvents.externalId, payload.externalId)).returning();
|
|
397849
397867
|
if (updated.length === 0) {
|
|
397850
|
-
const
|
|
397868
|
+
const chatLink = await resolveChatLink(sdb, metadata.instanceId, payload.chatId);
|
|
397851
397869
|
const newEvent = {
|
|
397852
397870
|
...eventIdInsert(event.id),
|
|
397853
397871
|
externalId: payload.externalId,
|
|
@@ -397862,7 +397880,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397862
397880
|
agentId: metadata.agentId ?? null,
|
|
397863
397881
|
causationId: metadata.causationId ?? null,
|
|
397864
397882
|
conversationId: null,
|
|
397865
|
-
|
|
397883
|
+
...chatLink
|
|
397866
397884
|
};
|
|
397867
397885
|
await sdb.insert(omniEvents).values(newEvent).onConflictDoNothing({ target: omniEvents.id });
|
|
397868
397886
|
}
|
|
@@ -397887,7 +397905,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397887
397905
|
readAt: new Date(payload.readAt)
|
|
397888
397906
|
}).where(eq(omniEvents.externalId, payload.externalId)).returning();
|
|
397889
397907
|
if (updated.length === 0) {
|
|
397890
|
-
const
|
|
397908
|
+
const chatLink = await resolveChatLink(sdb, metadata.instanceId, payload.chatId);
|
|
397891
397909
|
const newEvent = {
|
|
397892
397910
|
...eventIdInsert(event.id),
|
|
397893
397911
|
externalId: payload.externalId,
|
|
@@ -397902,7 +397920,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397902
397920
|
agentId: metadata.agentId ?? null,
|
|
397903
397921
|
causationId: metadata.causationId ?? null,
|
|
397904
397922
|
conversationId: null,
|
|
397905
|
-
|
|
397923
|
+
...chatLink
|
|
397906
397924
|
};
|
|
397907
397925
|
await sdb.insert(omniEvents).values(newEvent).onConflictDoNothing({ target: omniEvents.id });
|
|
397908
397926
|
}
|
|
@@ -397936,7 +397954,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397936
397954
|
}).where(and2(eq(omniEvents.instanceId, metadata.instanceId), eq(omniEvents.externalId, payload.externalId))).returning({ id: omniEvents.id });
|
|
397937
397955
|
}
|
|
397938
397956
|
if (updated.length === 0) {
|
|
397939
|
-
const
|
|
397957
|
+
const chatLink = await resolveChatLink(sdb, metadata.instanceId, payload.chatId);
|
|
397940
397958
|
const newEvent = {
|
|
397941
397959
|
...eventIdInsert(event.id),
|
|
397942
397960
|
externalId: payload.externalId,
|
|
@@ -397957,7 +397975,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397957
397975
|
agentId: metadata.agentId ?? null,
|
|
397958
397976
|
causationId: metadata.causationId ?? null,
|
|
397959
397977
|
conversationId: null,
|
|
397960
|
-
|
|
397978
|
+
...chatLink
|
|
397961
397979
|
};
|
|
397962
397980
|
await sdb.insert(omniEvents).values(newEvent).onConflictDoNothing({ target: omniEvents.id });
|
|
397963
397981
|
}
|
|
@@ -397985,7 +398003,8 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
397985
398003
|
const instanceId = metadata.instanceId && isValidUuid(metadata.instanceId) ? metadata.instanceId : null;
|
|
397986
398004
|
const payloadChatId = typeof payload.chatId === "string" ? payload.chatId : undefined;
|
|
397987
398005
|
const personId = await resolvePersonId2(sdb, metadata.personId) ?? await resolvePersonId2(sdb, payload.personId);
|
|
397988
|
-
const chatUuid = await resolveChatUuidById(sdb, payload.chatUuid)
|
|
398006
|
+
const chatUuid = await resolveChatUuidById(sdb, payload.chatUuid);
|
|
398007
|
+
const chatLink = chatUuid ? { chatUuid, canonicalChatId: null } : await resolveChatLink(sdb, instanceId ?? undefined, payloadChatId);
|
|
397989
398008
|
const newEvent = {
|
|
397990
398009
|
...eventIdInsert(event.id),
|
|
397991
398010
|
channel: "internal",
|
|
@@ -398004,7 +398023,7 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
398004
398023
|
causationId: metadata.causationId ?? null,
|
|
398005
398024
|
conversationId: null,
|
|
398006
398025
|
chatId: payloadChatId,
|
|
398007
|
-
|
|
398026
|
+
...chatLink
|
|
398008
398027
|
};
|
|
398009
398028
|
await sdb.insert(omniEvents).values(newEvent).onConflictDoNothing({ target: omniEvents.id });
|
|
398010
398029
|
});
|
|
@@ -398022,14 +398041,16 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
398022
398041
|
throw error3;
|
|
398023
398042
|
}
|
|
398024
398043
|
}
|
|
398025
|
-
var log125, CONSUMER_OPTIONS;
|
|
398044
|
+
var log125, NO_CHAT_LINK, CONSUMER_OPTIONS;
|
|
398026
398045
|
var init_event_persistence = __esm(() => {
|
|
398027
398046
|
init_src();
|
|
398028
398047
|
init_src5();
|
|
398029
398048
|
init_drizzle_orm();
|
|
398049
|
+
init_chats();
|
|
398030
398050
|
init_tenant_scope();
|
|
398031
398051
|
init_worker_tenant_context();
|
|
398032
398052
|
log125 = createLogger("event-persistence");
|
|
398053
|
+
NO_CHAT_LINK = { chatUuid: null, canonicalChatId: null };
|
|
398033
398054
|
CONSUMER_OPTIONS = {
|
|
398034
398055
|
queue: "event-persistence",
|
|
398035
398056
|
maxRetries: 3,
|
|
@@ -401290,6 +401311,7 @@ function startBunServer(app) {
|
|
|
401290
401311
|
return Bun.serve({
|
|
401291
401312
|
port: PORT,
|
|
401292
401313
|
hostname: HOST,
|
|
401314
|
+
idleTimeout: 60,
|
|
401293
401315
|
fetch(req, server) {
|
|
401294
401316
|
const url = new URL(req.url);
|
|
401295
401317
|
if (url.pathname.startsWith("/api/v2/voice/stream/")) {
|