refactor: route channel runtime via plugin api

This commit is contained in:
Peter Steinberger
2026-01-18 11:00:19 +00:00
parent 676d41d415
commit ee6e534ccb
82 changed files with 1253 additions and 3167 deletions

View File

@@ -20,9 +20,11 @@ import type { ClawdbotConfig } from "../config/config.js";
import * as configModule from "../config/config.js";
import type { RuntimeEnv } from "../runtime.js";
import { setActivePluginRegistry } from "../plugins/runtime.js";
import { createPluginRuntime } from "../plugins/runtime/index.js";
import { createTestRegistry } from "../test-utils/channel-plugins.js";
import { agentCommand } from "./agent.js";
import { telegramPlugin } from "../../extensions/telegram/src/channel.js";
import { setTelegramRuntime } from "../../extensions/telegram/src/runtime.js";
const runtime: RuntimeEnv = {
log: vi.fn(),
@@ -254,6 +256,7 @@ describe("agentCommand", () => {
await withTempHome(async (home) => {
const store = path.join(home, "sessions.json");
mockConfig(home, store, undefined, { botToken: "t-1" });
setTelegramRuntime(createPluginRuntime());
setActivePluginRegistry(
createTestRegistry([{ pluginId: "telegram", plugin: telegramPlugin, source: "test" }]),
);

View File

@@ -25,6 +25,7 @@ vi.mock("../config/sessions.js", () => ({
resolveStorePath: () => "/tmp/sessions.json",
loadSessionStore: () => testStore,
recordSessionMetaFromInbound: vi.fn().mockResolvedValue(undefined),
updateLastRoute: vi.fn().mockResolvedValue(undefined),
}));
vi.mock("../web/auth-store.js", () => ({
@@ -32,13 +33,17 @@ vi.mock("../web/auth-store.js", () => ({
getWebAuthAgeMs: vi.fn(() => 1234),
readWebSelfId: vi.fn(() => ({ e164: null, jid: null })),
logWebSelfId: vi.fn(),
logoutWeb: vi.fn(),
}));
describe("getHealthSnapshot", () => {
beforeEach(() => {
beforeEach(async () => {
setActivePluginRegistry(
createTestRegistry([{ pluginId: "telegram", plugin: telegramPlugin, source: "test" }]),
);
const { createPluginRuntime } = await import("../plugins/runtime/index.js");
const { setTelegramRuntime } = await import("../../extensions/telegram/src/runtime.js");
setTelegramRuntime(createPluginRuntime());
});
afterEach(() => {