@axiom-lattice/gateway 2.1.83 → 2.1.84
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/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +10 -0
- package/dist/index.d.mts +0 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +27 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -30
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +3 -3
- package/src/router/MessageRouter.ts +19 -23
- package/src/router/middlewares/deduplication.ts +1 -2
- package/src/router/middlewares/rateLimit.ts +1 -2
- package/src/routes/index.ts +2 -0
package/dist/index.mjs
CHANGED
|
@@ -6582,8 +6582,10 @@ var registerLatticeRoutes = (app2, channelDeps) => {
|
|
|
6582
6582
|
displayName: msg.sender.displayName
|
|
6583
6583
|
},
|
|
6584
6584
|
content: {
|
|
6585
|
-
text: msg.content.text
|
|
6585
|
+
text: msg.content.text,
|
|
6586
|
+
metadata: msg.content.metadata
|
|
6586
6587
|
},
|
|
6588
|
+
conversation: msg.conversation,
|
|
6587
6589
|
replyTarget: msg.replyTarget
|
|
6588
6590
|
};
|
|
6589
6591
|
await router.dispatch(inboundMessage).catch((error) => {
|
|
@@ -6650,7 +6652,6 @@ var MessageRouter = class {
|
|
|
6650
6652
|
this.bindingRegistry = config.bindingRegistry;
|
|
6651
6653
|
this.adapterRegistry = config.adapterRegistry;
|
|
6652
6654
|
this.installationStore = config.installationStore;
|
|
6653
|
-
this.logger = config.logger;
|
|
6654
6655
|
}
|
|
6655
6656
|
use(middleware) {
|
|
6656
6657
|
this.middlewares.push(middleware);
|
|
@@ -6664,7 +6665,7 @@ var MessageRouter = class {
|
|
|
6664
6665
|
await this.runMiddlewares(ctx, async () => {
|
|
6665
6666
|
const tenantId = message.tenantId || (await this.installationStore.getInstallationById(message.channelInstallationId))?.tenantId;
|
|
6666
6667
|
if (!tenantId) {
|
|
6667
|
-
|
|
6668
|
+
console.error({
|
|
6668
6669
|
event: "dispatch:error",
|
|
6669
6670
|
error: "tenantId missing",
|
|
6670
6671
|
channel: message.channel,
|
|
@@ -6675,7 +6676,7 @@ var MessageRouter = class {
|
|
|
6675
6676
|
"tenantId is required: provide it in the message or ensure the channelInstallation has a tenantId"
|
|
6676
6677
|
);
|
|
6677
6678
|
}
|
|
6678
|
-
|
|
6679
|
+
console.log({ event: "dispatch:start", channel: message.channel, senderId: message.sender.id, tenantId }, "Message dispatch started");
|
|
6679
6680
|
let binding = await this.bindingRegistry.resolve({
|
|
6680
6681
|
channel: message.channel,
|
|
6681
6682
|
senderId: message.sender.id,
|
|
@@ -6687,7 +6688,7 @@ var MessageRouter = class {
|
|
|
6687
6688
|
message.channelInstallationId
|
|
6688
6689
|
);
|
|
6689
6690
|
if (installation?.rejectWhenNoBinding) {
|
|
6690
|
-
|
|
6691
|
+
console.warn({
|
|
6691
6692
|
event: "dispatch:no_binding",
|
|
6692
6693
|
channel: message.channel,
|
|
6693
6694
|
senderId: message.sender.id,
|
|
@@ -6699,7 +6700,7 @@ var MessageRouter = class {
|
|
|
6699
6700
|
);
|
|
6700
6701
|
}
|
|
6701
6702
|
if (installation?.fallbackAgentId) {
|
|
6702
|
-
|
|
6703
|
+
console.warn({
|
|
6703
6704
|
event: "dispatch:fallback",
|
|
6704
6705
|
channel: message.channel,
|
|
6705
6706
|
senderId: message.sender.id,
|
|
@@ -6719,7 +6720,7 @@ var MessageRouter = class {
|
|
|
6719
6720
|
updatedAt: /* @__PURE__ */ new Date()
|
|
6720
6721
|
};
|
|
6721
6722
|
} else {
|
|
6722
|
-
|
|
6723
|
+
console.error({
|
|
6723
6724
|
event: "dispatch:no_fallback",
|
|
6724
6725
|
channel: message.channel,
|
|
6725
6726
|
senderId: message.sender.id,
|
|
@@ -6731,7 +6732,7 @@ var MessageRouter = class {
|
|
|
6731
6732
|
}
|
|
6732
6733
|
}
|
|
6733
6734
|
ctx.binding = binding;
|
|
6734
|
-
|
|
6735
|
+
console.log({
|
|
6735
6736
|
event: "dispatch:binding",
|
|
6736
6737
|
bindingId: binding.id,
|
|
6737
6738
|
agentId: binding.agentId,
|
|
@@ -6740,15 +6741,8 @@ var MessageRouter = class {
|
|
|
6740
6741
|
workspaceId: binding.workspaceId,
|
|
6741
6742
|
projectId: binding.projectId
|
|
6742
6743
|
}, "Binding resolved");
|
|
6743
|
-
if (binding.threadMode === "per_conversation") {
|
|
6744
|
-
this.logger?.warn({
|
|
6745
|
-
event: "dispatch:per_conversation",
|
|
6746
|
-
bindingId: binding.id,
|
|
6747
|
-
conversationId: message.conversation?.id
|
|
6748
|
-
}, "per_conversation mode active \u2014 thread lookup by conversation not yet implemented, using binding.threadId");
|
|
6749
|
-
}
|
|
6750
6744
|
if (!binding.enabled) {
|
|
6751
|
-
|
|
6745
|
+
console.warn({
|
|
6752
6746
|
event: "dispatch:binding_disabled",
|
|
6753
6747
|
bindingId: binding.id,
|
|
6754
6748
|
agentId: binding.agentId,
|
|
@@ -6758,11 +6752,11 @@ var MessageRouter = class {
|
|
|
6758
6752
|
`Binding for sender "${message.sender.id}" is disabled`
|
|
6759
6753
|
);
|
|
6760
6754
|
}
|
|
6761
|
-
let threadId = ctx.binding.threadId;
|
|
6755
|
+
let threadId = ctx.binding.threadMode === "per_conversation" ? void 0 : ctx.binding.threadId;
|
|
6762
6756
|
if (!threadId) {
|
|
6763
6757
|
const threadStore = getStoreLattice14("default", "thread").store;
|
|
6764
6758
|
const newThreadId = randomUUID7();
|
|
6765
|
-
|
|
6759
|
+
console.log({
|
|
6766
6760
|
event: "dispatch:thread:create",
|
|
6767
6761
|
agentId: ctx.binding.agentId,
|
|
6768
6762
|
newThreadId,
|
|
@@ -6777,7 +6771,11 @@ var MessageRouter = class {
|
|
|
6777
6771
|
channel: message.channel,
|
|
6778
6772
|
channelInstallationId: message.channelInstallationId,
|
|
6779
6773
|
senderId: message.sender.id,
|
|
6780
|
-
bindingId: ctx.binding.id
|
|
6774
|
+
bindingId: ctx.binding.id,
|
|
6775
|
+
...message.conversation ? {
|
|
6776
|
+
conversationId: message.conversation.id,
|
|
6777
|
+
conversationType: message.conversation.type
|
|
6778
|
+
} : {}
|
|
6781
6779
|
}
|
|
6782
6780
|
}
|
|
6783
6781
|
);
|
|
@@ -6789,7 +6787,7 @@ var MessageRouter = class {
|
|
|
6789
6787
|
ctx.binding.threadId = threadId;
|
|
6790
6788
|
}
|
|
6791
6789
|
}
|
|
6792
|
-
|
|
6790
|
+
console.log({
|
|
6793
6791
|
event: "dispatch:agent",
|
|
6794
6792
|
agentId: ctx.binding.agentId,
|
|
6795
6793
|
threadId,
|
|
@@ -6808,7 +6806,7 @@ var MessageRouter = class {
|
|
|
6808
6806
|
input: { message: message.content.text },
|
|
6809
6807
|
custom_run_config: message.content.metadata || {}
|
|
6810
6808
|
});
|
|
6811
|
-
|
|
6809
|
+
console.log({
|
|
6812
6810
|
event: "dispatch:complete",
|
|
6813
6811
|
agentId: ctx.binding.agentId,
|
|
6814
6812
|
threadId,
|
|
@@ -6839,7 +6837,7 @@ var MessageRouter = class {
|
|
|
6839
6837
|
};
|
|
6840
6838
|
} catch (error) {
|
|
6841
6839
|
ctx.error = error instanceof Error ? error : new Error(String(error));
|
|
6842
|
-
|
|
6840
|
+
console.error({ event: "dispatch:error", error: ctx.error.message, channel: message.channel, senderId: message.sender.id }, "Message dispatch failed");
|
|
6843
6841
|
return {
|
|
6844
6842
|
success: false,
|
|
6845
6843
|
bindingId: ctx.binding?.id,
|
|
@@ -6881,7 +6879,7 @@ var ChannelAdapterRegistry = class {
|
|
|
6881
6879
|
|
|
6882
6880
|
// src/router/middlewares/deduplication.ts
|
|
6883
6881
|
var processedMessages = /* @__PURE__ */ new Map();
|
|
6884
|
-
function createDeduplicationMiddleware(ttlMs = 5 * 60 * 1e3
|
|
6882
|
+
function createDeduplicationMiddleware(ttlMs = 5 * 60 * 1e3) {
|
|
6885
6883
|
return async (ctx, next) => {
|
|
6886
6884
|
const msg = ctx.inboundMessage;
|
|
6887
6885
|
const msgId = msg.content.metadata?.messageId;
|
|
@@ -6890,7 +6888,7 @@ function createDeduplicationMiddleware(ttlMs = 5 * 60 * 1e3, logger4) {
|
|
|
6890
6888
|
const now = Date.now();
|
|
6891
6889
|
const lastProcessed = processedMessages.get(key);
|
|
6892
6890
|
if (lastProcessed && now - lastProcessed < ttlMs) {
|
|
6893
|
-
|
|
6891
|
+
console.warn({
|
|
6894
6892
|
event: "dedup:blocked",
|
|
6895
6893
|
channel: msg.channel,
|
|
6896
6894
|
senderId: msg.sender.id,
|
|
@@ -6916,7 +6914,7 @@ var RateLimitError = class extends Error {
|
|
|
6916
6914
|
}
|
|
6917
6915
|
};
|
|
6918
6916
|
var rateCounters = /* @__PURE__ */ new Map();
|
|
6919
|
-
function createRateLimitMiddleware(maxRequests = 10, windowMs = 60 * 1e3, maxEntries = 1e4
|
|
6917
|
+
function createRateLimitMiddleware(maxRequests = 10, windowMs = 60 * 1e3, maxEntries = 1e4) {
|
|
6920
6918
|
return async (ctx, next) => {
|
|
6921
6919
|
const senderKey = `${ctx.inboundMessage.channel}:${ctx.inboundMessage.sender.id}`;
|
|
6922
6920
|
const now = Date.now();
|
|
@@ -6931,7 +6929,7 @@ function createRateLimitMiddleware(maxRequests = 10, windowMs = 60 * 1e3, maxEnt
|
|
|
6931
6929
|
if (oldest) rateCounters.delete(oldest[0]);
|
|
6932
6930
|
}
|
|
6933
6931
|
if (counter.count > maxRequests) {
|
|
6934
|
-
|
|
6932
|
+
console.warn({
|
|
6935
6933
|
event: "ratelimit:blocked",
|
|
6936
6934
|
channel: ctx.inboundMessage.channel,
|
|
6937
6935
|
senderId: ctx.inboundMessage.sender.id,
|
|
@@ -7471,14 +7469,13 @@ var start = async (config) => {
|
|
|
7471
7469
|
adapterRegistry.register(larkChannelAdapter);
|
|
7472
7470
|
const router = new MessageRouter({
|
|
7473
7471
|
middlewares: [
|
|
7474
|
-
createDeduplicationMiddleware(
|
|
7475
|
-
createRateLimitMiddleware(
|
|
7472
|
+
createDeduplicationMiddleware(),
|
|
7473
|
+
createRateLimitMiddleware(),
|
|
7476
7474
|
createAuditLoggerMiddleware()
|
|
7477
7475
|
],
|
|
7478
7476
|
bindingRegistry: bindingStore,
|
|
7479
7477
|
adapterRegistry,
|
|
7480
|
-
installationStore
|
|
7481
|
-
logger: logger3
|
|
7478
|
+
installationStore
|
|
7482
7479
|
});
|
|
7483
7480
|
channelDeps = { router, installationStore };
|
|
7484
7481
|
} catch {
|