@automagik/omni 2.260910.2 → 2.260910.4

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.
@@ -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
@@ -115715,7 +115715,7 @@ var require_client2 = __commonJS((exports) => {
115715
115715
 
115716
115716
  // ../../node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js
115717
115717
  var require_esmLoader = __commonJS((exports) => {
115718
- var __filename = "/home/runner/work/omni/omni/node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js";
115718
+ var __filename = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js";
115719
115719
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
115720
115720
  var core = require_cjs();
115721
115721
  var importInTheMiddle = require_import_in_the_middle();
@@ -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.2",
137142
+ version: "2.260910.4",
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 consumersApiRequest(`/${encodeURIComponent(params.consumer)}/pull?limit=${params.limit}&waitMs=${params.waitMs}`, { method: "POST" });
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 new Promise((resolve2) => setTimeout(resolve2, 1000));
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);
@@ -76924,7 +76924,7 @@ var require_ClientVoiceManager = __commonJS((exports, module) => {
76924
76924
 
76925
76925
  // ../../node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist/index.js
76926
76926
  var require_dist9 = __commonJS((exports, module) => {
76927
- var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist";
76927
+ var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist";
76928
76928
  var __create2 = Object.create;
76929
76929
  var __defProp2 = Object.defineProperty;
76930
76930
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -162204,7 +162204,7 @@ var require_indexes = __commonJS((exports, module) => {
162204
162204
 
162205
162205
  // ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
162206
162206
  var require_thread_stream = __commonJS((exports, module) => {
162207
- var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
162207
+ var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
162208
162208
  var { version } = require_package5();
162209
162209
  var { EventEmitter: EventEmitter3 } = __require("events");
162210
162210
  var { Worker } = __require("worker_threads");
@@ -162625,7 +162625,7 @@ var require_thread_stream = __commonJS((exports, module) => {
162625
162625
 
162626
162626
  // ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
162627
162627
  var require_transport2 = __commonJS((exports, module) => {
162628
- var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
162628
+ var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
162629
162629
  var { createRequire: createRequire2 } = __require("module");
162630
162630
  var getCallers = require_caller();
162631
162631
  var { join: join8, isAbsolute, sep: sep2 } = __require("path");
@@ -244369,7 +244369,7 @@ var require_client3 = __commonJS((exports) => {
244369
244369
 
244370
244370
  // ../../node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js
244371
244371
  var require_esmLoader = __commonJS((exports) => {
244372
- var __filename = "/home/runner/work/omni/omni/node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js";
244372
+ var __filename = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js";
244373
244373
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
244374
244374
  var core3 = require_cjs6();
244375
244375
  var importInTheMiddle = require_import_in_the_middle();
@@ -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.2",
251598
+ version: "2.260910.4",
251599
251599
  private: true,
251600
251600
  type: "module",
251601
251601
  exports: {
@@ -278697,7 +278697,7 @@ var require_src45 = __commonJS((exports) => {
278697
278697
 
278698
278698
  // ../../node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src/channelz.js
278699
278699
  var require_channelz = __commonJS((exports) => {
278700
- var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
278700
+ var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
278701
278701
  Object.defineProperty(exports, "__esModule", { value: true });
278702
278702
  exports.registerChannelzSocket = exports.registerChannelzServer = exports.registerChannelzSubchannel = exports.registerChannelzChannel = exports.ChannelzCallTrackerStub = exports.ChannelzCallTracker = exports.ChannelzChildrenTrackerStub = exports.ChannelzChildrenTracker = exports.ChannelzTrace = exports.ChannelzTraceStub = undefined;
278703
278703
  exports.unregisterChannelzRef = unregisterChannelzRef;
@@ -284100,7 +284100,7 @@ var require_duration = __commonJS((exports) => {
284100
284100
 
284101
284101
  // ../../node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src/orca.js
284102
284102
  var require_orca = __commonJS((exports) => {
284103
- var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
284103
+ var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
284104
284104
  Object.defineProperty(exports, "__esModule", { value: true });
284105
284105
  exports.OrcaOobMetricsSubchannelWrapper = exports.GRPC_METRICS_HEADER = exports.ServerMetricRecorder = exports.PerRequestMetricRecorder = undefined;
284106
284106
  exports.createOrcaClient = createOrcaClient;
@@ -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 resolveChatUuid(db2, instanceId, chatId) {
397720
+ async function resolveChatLink(db2, instanceId, chatId) {
397703
397721
  if (!instanceId || !chatId)
397704
- return null;
397722
+ return NO_CHAT_LINK;
397705
397723
  try {
397706
- const [chat2] = await db2.select({ id: chats.id }).from(chats).where(and2(eq(chats.instanceId, instanceId), eq(chats.externalId, chatId))).limit(1);
397707
- return chat2?.id ?? null;
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 null;
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 chatUuid = await resolveChatUuid(sdb, metadata.instanceId, payload.chatId);
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
- chatUuid
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 chatUuid = await resolveChatUuid(sdb, metadata.instanceId, payload.chatId);
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
- chatUuid
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 chatUuid = await resolveChatUuid(sdb, metadata.instanceId, payload.chatId);
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
- chatUuid
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 chatUuid = await resolveChatUuid(sdb, metadata.instanceId, payload.chatId);
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
- chatUuid
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 chatUuid = await resolveChatUuid(sdb, metadata.instanceId, payload.chatId);
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
- chatUuid
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) ?? await resolveChatUuid(sdb, instanceId ?? undefined, payloadChatId);
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
- chatUuid
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/")) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automagik/omni",
3
- "version": "2.260910.2",
3
+ "version": "2.260910.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/automagik-dev/omni.git",