@automagik/omni 2.260911.4 → 2.260911.6
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 +23 -4
- package/dist/sdk/types.generated.d.ts +20 -0
- package/dist/sdk/types.generated.d.ts.map +1 -1
- package/dist/server/index.js +43 -16
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -38333,6 +38333,8 @@ class DebounceManager {
|
|
|
38333
38333
|
this.windows.set(key, window2);
|
|
38334
38334
|
}
|
|
38335
38335
|
window2.messages.push(message2);
|
|
38336
|
+
window2.from = from;
|
|
38337
|
+
window2.instanceId = instanceId;
|
|
38336
38338
|
window2.lastActivityAt = Date.now();
|
|
38337
38339
|
this.resetTimer(key, window2);
|
|
38338
38340
|
}
|
|
@@ -38667,6 +38669,23 @@ class AutomationEngine {
|
|
|
38667
38669
|
throw err2;
|
|
38668
38670
|
}
|
|
38669
38671
|
}
|
|
38672
|
+
resolveDebounceKey(automation, event, instanceId) {
|
|
38673
|
+
const payload = event.payload;
|
|
38674
|
+
const template = automation.debounce?.key;
|
|
38675
|
+
if (!template) {
|
|
38676
|
+
const from = payload.from;
|
|
38677
|
+
return from?.id ? buildConversationKey(instanceId, from.id) : null;
|
|
38678
|
+
}
|
|
38679
|
+
const rendered = substituteTemplate(template, createTemplateContext(payload)).trim();
|
|
38680
|
+
if (!rendered) {
|
|
38681
|
+
logger4.debug("Debounce key template rendered empty \u2014 processing immediately", {
|
|
38682
|
+
automationId: automation.id,
|
|
38683
|
+
eventId: event.id
|
|
38684
|
+
});
|
|
38685
|
+
return null;
|
|
38686
|
+
}
|
|
38687
|
+
return `${instanceId}:${rendered}`;
|
|
38688
|
+
}
|
|
38670
38689
|
async handleDebounced(automation, event) {
|
|
38671
38690
|
const manager = this.debounceManagers.get(automation.id);
|
|
38672
38691
|
if (!manager) {
|
|
@@ -38676,11 +38695,11 @@ class AutomationEngine {
|
|
|
38676
38695
|
const payload = event.payload;
|
|
38677
38696
|
const instanceId = event.metadata.instanceId ?? "global";
|
|
38678
38697
|
const from = payload.from;
|
|
38679
|
-
|
|
38698
|
+
const key = this.resolveDebounceKey(automation, event, instanceId);
|
|
38699
|
+
if (!key) {
|
|
38680
38700
|
await this.handleImmediate(automation, event);
|
|
38681
38701
|
return;
|
|
38682
38702
|
}
|
|
38683
|
-
const key = buildConversationKey(instanceId, from.id);
|
|
38684
38703
|
if (event.type.startsWith("presence.")) {
|
|
38685
38704
|
manager.handlePresenceEvent(key, event.type);
|
|
38686
38705
|
return;
|
|
@@ -76998,7 +77017,7 @@ var require_ClientVoiceManager = __commonJS((exports, module) => {
|
|
|
76998
77017
|
|
|
76999
77018
|
// ../../node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist/index.js
|
|
77000
77019
|
var require_dist9 = __commonJS((exports, module) => {
|
|
77001
|
-
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist";
|
|
77020
|
+
var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/@discordjs+ws@1.2.3/node_modules/@discordjs/ws/dist";
|
|
77002
77021
|
var __create2 = Object.create;
|
|
77003
77022
|
var __defProp2 = Object.defineProperty;
|
|
77004
77023
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
@@ -162278,7 +162297,7 @@ var require_indexes = __commonJS((exports, module) => {
|
|
|
162278
162297
|
|
|
162279
162298
|
// ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
|
|
162280
162299
|
var require_thread_stream = __commonJS((exports, module) => {
|
|
162281
|
-
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
|
|
162300
|
+
var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
|
|
162282
162301
|
var { version } = require_package5();
|
|
162283
162302
|
var { EventEmitter: EventEmitter3 } = __require("events");
|
|
162284
162303
|
var { Worker } = __require("worker_threads");
|
|
@@ -162699,7 +162718,7 @@ var require_thread_stream = __commonJS((exports, module) => {
|
|
|
162699
162718
|
|
|
162700
162719
|
// ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
|
|
162701
162720
|
var require_transport2 = __commonJS((exports, module) => {
|
|
162702
|
-
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
|
|
162721
|
+
var __dirname = "/home/runner/work/omni/omni/.stable-source/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
|
|
162703
162722
|
var { createRequire: createRequire2 } = __require("module");
|
|
162704
162723
|
var getCallers = require_caller();
|
|
162705
162724
|
var { join: join8, isAbsolute, sep: sep2 } = __require("path");
|
|
@@ -244446,7 +244465,7 @@ var require_client3 = __commonJS((exports) => {
|
|
|
244446
244465
|
|
|
244447
244466
|
// ../../node_modules/.bun/@sentry+node-core@10.52.0+2c50d7e904f6cfd7/node_modules/@sentry/node-core/build/cjs/sdk/esmLoader.js
|
|
244448
244467
|
var require_esmLoader = __commonJS((exports) => {
|
|
244449
|
-
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";
|
|
244468
|
+
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";
|
|
244450
244469
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
244451
244470
|
var core3 = require_cjs6();
|
|
244452
244471
|
var importInTheMiddle = require_import_in_the_middle();
|
|
@@ -251672,7 +251691,7 @@ var init_sentry_scrub = __esm(() => {
|
|
|
251672
251691
|
var require_package7 = __commonJS((exports, module) => {
|
|
251673
251692
|
module.exports = {
|
|
251674
251693
|
name: "@omni/api",
|
|
251675
|
-
version: "2.260911.
|
|
251694
|
+
version: "2.260911.6",
|
|
251676
251695
|
private: true,
|
|
251677
251696
|
type: "module",
|
|
251678
251697
|
exports: {
|
|
@@ -278774,7 +278793,7 @@ var require_src45 = __commonJS((exports) => {
|
|
|
278774
278793
|
|
|
278775
278794
|
// ../../node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src/channelz.js
|
|
278776
278795
|
var require_channelz = __commonJS((exports) => {
|
|
278777
|
-
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
|
|
278796
|
+
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";
|
|
278778
278797
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
278779
278798
|
exports.registerChannelzSocket = exports.registerChannelzServer = exports.registerChannelzSubchannel = exports.registerChannelzChannel = exports.ChannelzCallTrackerStub = exports.ChannelzCallTracker = exports.ChannelzChildrenTrackerStub = exports.ChannelzChildrenTracker = exports.ChannelzTrace = exports.ChannelzTraceStub = undefined;
|
|
278780
278799
|
exports.unregisterChannelzRef = unregisterChannelzRef;
|
|
@@ -284177,7 +284196,7 @@ var require_duration = __commonJS((exports) => {
|
|
|
284177
284196
|
|
|
284178
284197
|
// ../../node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src/orca.js
|
|
284179
284198
|
var require_orca = __commonJS((exports) => {
|
|
284180
|
-
var __dirname = "/home/runner/work/omni/omni/node_modules/.bun/@grpc+grpc-js@1.14.3/node_modules/@grpc/grpc-js/build/src";
|
|
284199
|
+
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";
|
|
284181
284200
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
284182
284201
|
exports.OrcaOobMetricsSubchannelWrapper = exports.GRPC_METRICS_HEADER = exports.ServerMetricRecorder = exports.PerRequestMetricRecorder = undefined;
|
|
284183
284202
|
exports.createOrcaClient = createOrcaClient;
|
|
@@ -379441,7 +379460,8 @@ var init_automations3 = __esm(() => {
|
|
|
379441
379460
|
maxMs: exports_external.number().int().optional(),
|
|
379442
379461
|
baseDelayMs: exports_external.number().int().optional(),
|
|
379443
379462
|
maxWaitMs: exports_external.number().int().optional(),
|
|
379444
|
-
extendOnEvents: exports_external.array(exports_external.string()).optional()
|
|
379463
|
+
extendOnEvents: exports_external.array(exports_external.string()).optional(),
|
|
379464
|
+
key: exports_external.string().optional().describe('Template over the event payload naming the debounce window (#1110), e.g. "{{payload.pull_request.id}}"; ' + 'absent = grouped by conversation (instance + sender). Not allowed with mode "presence"')
|
|
379445
379465
|
});
|
|
379446
379466
|
AutomationSchema = exports_external.object({
|
|
379447
379467
|
id: exports_external.string().uuid().openapi({ description: "Automation UUID" }),
|
|
@@ -385195,7 +385215,7 @@ async function resolveTestEvent(services, body) {
|
|
|
385195
385215
|
timestamp: row.receivedAt.getTime()
|
|
385196
385216
|
};
|
|
385197
385217
|
}
|
|
385198
|
-
var automationsRoutes, conditionSchema, webhookActionSchema, sendMessageActionSchema, emitEventActionSchema, logActionSchema, callAgentActionSchema, actionSchema, debounceSchema, createAutomationSchema, updateAutomationSchema, listQuerySchema5, testAutomationSchema, logsQuerySchema;
|
|
385218
|
+
var automationsRoutes, conditionSchema, webhookActionSchema, sendMessageActionSchema, emitEventActionSchema, logActionSchema, callAgentActionSchema, actionSchema, debounceKeySchema, debounceSchema, createAutomationSchema, updateAutomationSchema, listQuerySchema5, testAutomationSchema, logsQuerySchema;
|
|
385199
385219
|
var init_automations4 = __esm(() => {
|
|
385200
385220
|
init_dist6();
|
|
385201
385221
|
init_dist2();
|
|
@@ -385261,24 +385281,31 @@ var init_automations4 = __esm(() => {
|
|
|
385261
385281
|
logActionSchema,
|
|
385262
385282
|
callAgentActionSchema
|
|
385263
385283
|
]);
|
|
385284
|
+
debounceKeySchema = exports_external.string().min(1).optional().describe('Template over the event payload naming the debounce window (#1110), e.g. "{{payload.pull_request.id}}"; ' + 'omit to group by conversation (instance + sender) as before. Not allowed with mode "presence"');
|
|
385264
385285
|
debounceSchema = exports_external.discriminatedUnion("mode", [
|
|
385265
|
-
exports_external.object({ mode: exports_external.literal("none") }),
|
|
385286
|
+
exports_external.object({ mode: exports_external.literal("none"), key: debounceKeySchema }),
|
|
385266
385287
|
exports_external.object({
|
|
385267
385288
|
mode: exports_external.literal("fixed"),
|
|
385268
|
-
delayMs: exports_external.number().int().min(100).max(300000).describe("Fixed delay in milliseconds")
|
|
385289
|
+
delayMs: exports_external.number().int().min(100).max(300000).describe("Fixed delay in milliseconds"),
|
|
385290
|
+
key: debounceKeySchema
|
|
385269
385291
|
}),
|
|
385270
385292
|
exports_external.object({
|
|
385271
385293
|
mode: exports_external.literal("range"),
|
|
385272
385294
|
minMs: exports_external.number().int().min(100).describe("Minimum delay"),
|
|
385273
|
-
maxMs: exports_external.number().int().max(300000).describe("Maximum delay")
|
|
385295
|
+
maxMs: exports_external.number().int().max(300000).describe("Maximum delay"),
|
|
385296
|
+
key: debounceKeySchema
|
|
385274
385297
|
}),
|
|
385275
385298
|
exports_external.object({
|
|
385276
385299
|
mode: exports_external.literal("presence"),
|
|
385277
385300
|
baseDelayMs: exports_external.number().int().min(100).describe("Base delay"),
|
|
385278
385301
|
maxWaitMs: exports_external.number().int().max(300000).optional().describe("Maximum total wait"),
|
|
385279
|
-
extendOnEvents: exports_external.array(exports_external.string()).describe("Events that extend the timer")
|
|
385302
|
+
extendOnEvents: exports_external.array(exports_external.string()).describe("Events that extend the timer"),
|
|
385303
|
+
key: debounceKeySchema
|
|
385280
385304
|
})
|
|
385281
|
-
])
|
|
385305
|
+
]).refine((debounce3) => !(debounce3.mode === "presence" && debounce3.key), {
|
|
385306
|
+
message: 'debounce.key cannot be combined with mode "presence": presence extension only applies to conversations',
|
|
385307
|
+
path: ["key"]
|
|
385308
|
+
});
|
|
385282
385309
|
createAutomationSchema = exports_external.object({
|
|
385283
385310
|
name: exports_external.string().min(1).max(255).describe("Automation name"),
|
|
385284
385311
|
description: exports_external.string().optional().describe("Description"),
|