feat: multi-agent routing + multi-account providers

This commit is contained in:
Peter Steinberger
2026-01-06 18:25:37 +00:00
parent 50d4b17417
commit dbfa316d19
129 changed files with 3760 additions and 1126 deletions

View File

@@ -60,7 +60,7 @@ describe("resolveHeartbeatDeliveryTarget", () => {
agent: { heartbeat: { target: "none" } },
};
expect(resolveHeartbeatDeliveryTarget({ cfg, entry: baseEntry })).toEqual({
channel: "none",
provider: "none",
reason: "target-none",
});
});
@@ -69,11 +69,11 @@ describe("resolveHeartbeatDeliveryTarget", () => {
const cfg: ClawdbotConfig = {};
const entry = {
...baseEntry,
lastChannel: "whatsapp" as const,
lastProvider: "whatsapp" as const,
lastTo: "+1555",
};
expect(resolveHeartbeatDeliveryTarget({ cfg, entry })).toEqual({
channel: "whatsapp",
provider: "whatsapp",
to: "+1555",
});
});
@@ -82,11 +82,11 @@ describe("resolveHeartbeatDeliveryTarget", () => {
const cfg: ClawdbotConfig = {};
const entry = {
...baseEntry,
lastChannel: "webchat" as const,
lastProvider: "webchat" as const,
lastTo: "web",
};
expect(resolveHeartbeatDeliveryTarget({ cfg, entry })).toEqual({
channel: "none",
provider: "none",
reason: "no-target",
});
});
@@ -98,11 +98,11 @@ describe("resolveHeartbeatDeliveryTarget", () => {
};
const entry = {
...baseEntry,
lastChannel: "whatsapp" as const,
lastProvider: "whatsapp" as const,
lastTo: "+1222",
};
expect(resolveHeartbeatDeliveryTarget({ cfg, entry })).toEqual({
channel: "whatsapp",
provider: "whatsapp",
to: "+1555",
reason: "allowFrom-fallback",
});
@@ -113,7 +113,7 @@ describe("resolveHeartbeatDeliveryTarget", () => {
agent: { heartbeat: { target: "telegram", to: "123" } },
};
expect(resolveHeartbeatDeliveryTarget({ cfg, entry: baseEntry })).toEqual({
channel: "telegram",
provider: "telegram",
to: "123",
});
});
@@ -132,7 +132,7 @@ describe("runHeartbeatOnce", () => {
main: {
sessionId: "sid",
updatedAt: Date.now(),
lastChannel: "whatsapp",
lastProvider: "whatsapp",
lastTo: "+1555",
},
},
@@ -193,7 +193,7 @@ describe("runHeartbeatOnce", () => {
main: {
sessionId: "sid",
updatedAt: Date.now(),
lastChannel: "whatsapp",
lastProvider: "whatsapp",
lastTo: "+1555",
},
},
@@ -251,7 +251,7 @@ describe("runHeartbeatOnce", () => {
main: {
sessionId: "sid",
updatedAt: Date.now(),
lastChannel: "whatsapp",
lastProvider: "whatsapp",
lastTo: "+1555",
},
},