@automagik/omni 2.260915.4 → 2.260915.5
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/index.js +2 -2
- package/dist/server/index.js +51 -10
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -115846,7 +115846,7 @@ var require_client2 = __commonJS((exports) => {
|
|
|
115846
115846
|
|
|
115847
115847
|
// ../../node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js
|
|
115848
115848
|
var require_esmLoader = __commonJS((exports) => {
|
|
115849
|
-
var __filename = "/home/runner/work/omni/omni
|
|
115849
|
+
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";
|
|
115850
115850
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
115851
115851
|
var core = require_cjs();
|
|
115852
115852
|
var importInTheMiddle = require_import_in_the_middle();
|
|
@@ -137289,7 +137289,7 @@ import { fileURLToPath } from "url";
|
|
|
137289
137289
|
// package.json
|
|
137290
137290
|
var package_default = {
|
|
137291
137291
|
name: "@automagik/omni",
|
|
137292
|
-
version: "2.260915.
|
|
137292
|
+
version: "2.260915.5",
|
|
137293
137293
|
repository: {
|
|
137294
137294
|
type: "git",
|
|
137295
137295
|
url: "git+https://github.com/automagik-dev/omni.git",
|
package/dist/server/index.js
CHANGED
|
@@ -77053,7 +77053,7 @@ var require_ClientVoiceManager = __commonJS((exports, module) => {
|
|
|
77053
77053
|
|
|
77054
77054
|
// ../../node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist/index.js
|
|
77055
77055
|
var require_dist9 = __commonJS((exports, module) => {
|
|
77056
|
-
var __dirname = "/home/runner/work/omni/omni
|
|
77056
|
+
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist";
|
|
77057
77057
|
var __create2 = Object.create;
|
|
77058
77058
|
var __defProp2 = Object.defineProperty;
|
|
77059
77059
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
@@ -161566,7 +161566,7 @@ var require_indexes = __commonJS((exports, module) => {
|
|
|
161566
161566
|
|
|
161567
161567
|
// ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
|
|
161568
161568
|
var require_thread_stream = __commonJS((exports, module) => {
|
|
161569
|
-
var __dirname = "/home/runner/work/omni/omni
|
|
161569
|
+
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
|
|
161570
161570
|
var { version } = require_package5();
|
|
161571
161571
|
var { EventEmitter: EventEmitter3 } = __require("events");
|
|
161572
161572
|
var { Worker } = __require("worker_threads");
|
|
@@ -161987,7 +161987,7 @@ var require_thread_stream = __commonJS((exports, module) => {
|
|
|
161987
161987
|
|
|
161988
161988
|
// ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
|
|
161989
161989
|
var require_transport2 = __commonJS((exports, module) => {
|
|
161990
|
-
var __dirname = "/home/runner/work/omni/omni
|
|
161990
|
+
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
|
|
161991
161991
|
var { createRequire: createRequire2 } = __require("module");
|
|
161992
161992
|
var getCallers = require_caller();
|
|
161993
161993
|
var { join: join8, isAbsolute, sep: sep2 } = __require("path");
|
|
@@ -243760,7 +243760,7 @@ var require_client3 = __commonJS((exports) => {
|
|
|
243760
243760
|
|
|
243761
243761
|
// ../../node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js
|
|
243762
243762
|
var require_esmLoader = __commonJS((exports) => {
|
|
243763
|
-
var __filename = "/home/runner/work/omni/omni
|
|
243763
|
+
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";
|
|
243764
243764
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
243765
243765
|
var core3 = require_cjs6();
|
|
243766
243766
|
var importInTheMiddle = require_import_in_the_middle();
|
|
@@ -250986,7 +250986,7 @@ var init_sentry_scrub = __esm(() => {
|
|
|
250986
250986
|
var require_package7 = __commonJS((exports, module) => {
|
|
250987
250987
|
module.exports = {
|
|
250988
250988
|
name: "@omni/api",
|
|
250989
|
-
version: "2.260915.
|
|
250989
|
+
version: "2.260915.5",
|
|
250990
250990
|
private: true,
|
|
250991
250991
|
type: "module",
|
|
250992
250992
|
exports: {
|
|
@@ -278088,7 +278088,7 @@ var require_src45 = __commonJS((exports) => {
|
|
|
278088
278088
|
|
|
278089
278089
|
// ../../node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src/channelz.js
|
|
278090
278090
|
var require_channelz = __commonJS((exports) => {
|
|
278091
|
-
var __dirname = "/home/runner/work/omni/omni
|
|
278091
|
+
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
|
|
278092
278092
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
278093
278093
|
exports.registerChannelzSocket = exports.registerChannelzServer = exports.registerChannelzSubchannel = exports.registerChannelzChannel = exports.ChannelzCallTrackerStub = exports.ChannelzCallTracker = exports.ChannelzChildrenTrackerStub = exports.ChannelzChildrenTracker = exports.ChannelzTrace = exports.ChannelzTraceStub = undefined;
|
|
278094
278094
|
exports.unregisterChannelzRef = unregisterChannelzRef;
|
|
@@ -283491,7 +283491,7 @@ var require_duration = __commonJS((exports) => {
|
|
|
283491
283491
|
|
|
283492
283492
|
// ../../node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src/orca.js
|
|
283493
283493
|
var require_orca = __commonJS((exports) => {
|
|
283494
|
-
var __dirname = "/home/runner/work/omni/omni
|
|
283494
|
+
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
|
|
283495
283495
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
283496
283496
|
exports.OrcaOobMetricsSubchannelWrapper = exports.GRPC_METRICS_HEADER = exports.ServerMetricRecorder = exports.PerRequestMetricRecorder = undefined;
|
|
283497
283497
|
exports.createOrcaClient = createOrcaClient;
|
|
@@ -369798,6 +369798,7 @@ class DeadLetterService {
|
|
|
369798
369798
|
get db() {
|
|
369799
369799
|
return scopedHandle(this.pool);
|
|
369800
369800
|
}
|
|
369801
|
+
warnedNoBus = false;
|
|
369801
369802
|
constructor(pool, eventBus) {
|
|
369802
369803
|
this.pool = pool;
|
|
369803
369804
|
this.eventBus = eventBus;
|
|
@@ -369883,6 +369884,12 @@ class DeadLetterService {
|
|
|
369883
369884
|
}
|
|
369884
369885
|
async publishSystemEvent(result) {
|
|
369885
369886
|
if (!this.eventBus) {
|
|
369887
|
+
if (!this.warnedNoBus) {
|
|
369888
|
+
this.warnedNoBus = true;
|
|
369889
|
+
log102.warn("No event bus: dead letter announcements disabled \u2014 no system.dead_letter will be published", {
|
|
369890
|
+
deadLetterId: result.id
|
|
369891
|
+
});
|
|
369892
|
+
}
|
|
369886
369893
|
return;
|
|
369887
369894
|
}
|
|
369888
369895
|
try {
|
|
@@ -370012,6 +370019,13 @@ class DeadLetterService {
|
|
|
370012
370019
|
const [result] = await this.db.select({ count: sql`count(*)::int` }).from(deadLetterEvents).where(eq(deadLetterEvents.status, "pending"));
|
|
370013
370020
|
return result?.count ?? 0;
|
|
370014
370021
|
}
|
|
370022
|
+
async getPendingSummary() {
|
|
370023
|
+
const [result] = await this.db.select({
|
|
370024
|
+
pending: sql`count(*)::int`,
|
|
370025
|
+
oldest: sql`min(${deadLetterEvents.createdAt})`
|
|
370026
|
+
}).from(deadLetterEvents).where(eq(deadLetterEvents.status, "pending"));
|
|
370027
|
+
return { pending: result?.pending ?? 0, oldestPendingAt: result?.oldest ? new Date(result.oldest) : null };
|
|
370028
|
+
}
|
|
370015
370029
|
async getStats() {
|
|
370016
370030
|
const [totals] = await this.db.select({
|
|
370017
370031
|
total: sql`count(*)::int`,
|
|
@@ -376546,6 +376560,25 @@ function getPluginsDegradedReason() {
|
|
|
376546
376560
|
var pluginsDegraded = false, pluginsDegradedReason = null;
|
|
376547
376561
|
|
|
376548
376562
|
// ../api/src/routes/health.ts
|
|
376563
|
+
async function checkDeadLetters(services) {
|
|
376564
|
+
if (!services)
|
|
376565
|
+
return { status: "ok", details: { available: false } };
|
|
376566
|
+
try {
|
|
376567
|
+
const { pending: pending2, oldestPendingAt } = await services.deadLetters.getPendingSummary();
|
|
376568
|
+
const oldestPendingAgeSeconds = oldestPendingAt ? Math.floor((Date.now() - oldestPendingAt.getTime()) / 1000) : null;
|
|
376569
|
+
const details = { pending: pending2, oldestPendingAgeSeconds };
|
|
376570
|
+
if (pending2 >= DEAD_LETTER_PENDING_THRESHOLD) {
|
|
376571
|
+
return { status: "error", details, error: `${pending2} pending dead letters` };
|
|
376572
|
+
}
|
|
376573
|
+
if (oldestPendingAgeSeconds !== null && oldestPendingAgeSeconds >= DEAD_LETTER_MAX_AGE_SECONDS) {
|
|
376574
|
+
return { status: "error", details, error: `oldest pending dead letter is ${oldestPendingAgeSeconds}s old` };
|
|
376575
|
+
}
|
|
376576
|
+
return { status: "ok", details };
|
|
376577
|
+
} catch (error3) {
|
|
376578
|
+
healthLog.warn("Dead letter health query failed", { error: String(error3) });
|
|
376579
|
+
return { status: "ok", details: { available: false } };
|
|
376580
|
+
}
|
|
376581
|
+
}
|
|
376549
376582
|
function freshnessFor(oldestUpdateMs) {
|
|
376550
376583
|
if (oldestUpdateMs === null)
|
|
376551
376584
|
return "current";
|
|
@@ -376580,7 +376613,8 @@ var import__package2, healthLog, VERSION5, startTime2, healthRoutes, getHealth =
|
|
|
376580
376613
|
}
|
|
376581
376614
|
const pluginsFailed = arePluginsDegraded();
|
|
376582
376615
|
const pluginsCheck = pluginsFailed ? { status: "error", error: getPluginsDegradedReason() ?? "Plugin initialization failed" } : { status: "ok" };
|
|
376583
|
-
const
|
|
376616
|
+
const deadLettersCheck = await checkDeadLetters(c.get("services"));
|
|
376617
|
+
const hasErrors = dbCheck.status === "error" || natsCheck.status === "error" || pluginsFailed || deadLettersCheck.status === "error";
|
|
376584
376618
|
const status = hasErrors ? "degraded" : "healthy";
|
|
376585
376619
|
const response = {
|
|
376586
376620
|
status,
|
|
@@ -376590,11 +376624,12 @@ var import__package2, healthLog, VERSION5, startTime2, healthRoutes, getHealth =
|
|
|
376590
376624
|
checks: {
|
|
376591
376625
|
database: dbCheck,
|
|
376592
376626
|
nats: natsCheck,
|
|
376593
|
-
plugins: pluginsCheck
|
|
376627
|
+
plugins: pluginsCheck,
|
|
376628
|
+
deadLetters: deadLettersCheck
|
|
376594
376629
|
}
|
|
376595
376630
|
};
|
|
376596
376631
|
return c.json(response, status === "healthy" ? 200 : 503);
|
|
376597
|
-
}, LAGGING_AFTER_MS = 60000, STALE_AFTER_MS;
|
|
376632
|
+
}, DEAD_LETTER_PENDING_THRESHOLD = 50, DEAD_LETTER_MAX_AGE_SECONDS, LAGGING_AFTER_MS = 60000, STALE_AFTER_MS;
|
|
376598
376633
|
var init_health2 = __esm(() => {
|
|
376599
376634
|
init_src();
|
|
376600
376635
|
init_src5();
|
|
@@ -376606,6 +376641,7 @@ var init_health2 = __esm(() => {
|
|
|
376606
376641
|
VERSION5 = import__package2.default.version;
|
|
376607
376642
|
startTime2 = Date.now();
|
|
376608
376643
|
healthRoutes = new Hono2;
|
|
376644
|
+
DEAD_LETTER_MAX_AGE_SECONDS = 24 * 60 * 60;
|
|
376609
376645
|
healthRoutes.get("/health", getHealth);
|
|
376610
376646
|
healthRoutes.get("/info", async (c) => {
|
|
376611
376647
|
return c.json({
|
|
@@ -398266,6 +398302,11 @@ async function setupEventPersistence(eventBus, db2) {
|
|
|
398266
398302
|
durable: "event-persistence-connector",
|
|
398267
398303
|
startFrom: "new"
|
|
398268
398304
|
});
|
|
398305
|
+
await eventBus.subscribePattern("system.dead_letter", (event) => journalInternalEvent(db2, event), {
|
|
398306
|
+
...CONSUMER_OPTIONS,
|
|
398307
|
+
durable: "event-persistence-dead-letter",
|
|
398308
|
+
startFrom: "new"
|
|
398309
|
+
});
|
|
398269
398310
|
log128.info("Event persistence initialized - listening for message events");
|
|
398270
398311
|
} catch (error3) {
|
|
398271
398312
|
log128.error("Failed to set up event persistence", { error: String(error3) });
|