


























@@ -20,6 +20,97 @@ vi.mock("../infra/agent-events.js", () => ({
2020},
2121}));
222223+vi.mock("../cli/deps.js", () => ({
24+createDefaultDeps: () => ({}),
25+}));
26+27+vi.mock("../config/sessions.js", () => ({
28+resolveAgentMainSessionKey: () => "agent:main:main",
29+resolveStorePath: () => "/tmp/openclaw-sessions.json",
30+updateSessionStore: vi.fn(),
31+}));
32+33+vi.mock("../agents/agent-scope.js", () => ({
34+resolveSessionAgentId: () => "main",
35+}));
36+37+vi.mock("../agents/defaults.js", () => ({
38+DEFAULT_PROVIDER: "openai",
39+}));
40+41+vi.mock("../agents/model-selection.js", () => ({
42+buildAllowedModelSet: ({ catalog }: { catalog: unknown[] }) => ({ allowedCatalog: catalog }),
43+resolveThinkingDefault: () => undefined,
44+}));
45+46+vi.mock("../config/config.js", () => ({
47+loadConfig: () => ({}),
48+}));
49+50+vi.mock("../gateway/chat-sanitize.js", () => ({
51+stripEnvelopeFromMessages: (messages: unknown[]) => messages,
52+}));
53+54+vi.mock("../gateway/cli-session-history.js", () => ({
55+augmentChatHistoryWithCliSessionImports: ({ localMessages }: { localMessages?: unknown[] }) =>
56+localMessages ?? [],
57+}));
58+59+vi.mock("../gateway/server-constants.js", () => ({
60+getMaxChatHistoryMessagesBytes: () => 100_000,
61+}));
62+63+vi.mock("../gateway/server-methods/chat.js", () => ({
64+CHAT_HISTORY_MAX_SINGLE_MESSAGE_BYTES: 100_000,
65+augmentChatHistoryWithCanvasBlocks: (messages: unknown[]) => messages,
66+enforceChatHistoryFinalBudget: ({ messages }: { messages: unknown[] }) => ({ messages }),
67+replaceOversizedChatHistoryMessages: ({ messages }: { messages: unknown[] }) => ({ messages }),
68+resolveEffectiveChatHistoryMaxChars: () => 100_000,
69+sanitizeChatHistoryMessages: (messages: unknown[]) => messages,
70+}));
71+72+vi.mock("../gateway/session-utils.js", () => ({
73+listAgentsForGateway: () => [],
74+listSessionsFromStore: () => ({ sessions: [] }),
75+loadCombinedSessionStoreForGateway: () => ({
76+storePath: "/tmp/openclaw-sessions.json",
77+store: {},
78+}),
79+loadSessionEntry: (sessionKey: string) => ({
80+cfg: {},
81+canonicalKey: sessionKey,
82+entry: {},
83+}),
84+migrateAndPruneGatewaySessionStoreKey: ({ key }: { key: string }) => ({ primaryKey: key }),
85+readSessionMessages: () => [],
86+resolveGatewaySessionStoreTarget: ({ key }: { key: string }) => ({
87+canonicalKey: key,
88+storePath: "/tmp/openclaw-sessions.json",
89+}),
90+resolveSessionModelRef: () => ({ provider: "openai", model: "gpt-5.4" }),
91+}));
92+93+vi.mock("../gateway/server-model-catalog.js", () => ({
94+loadGatewayModelCatalog: () => [],
95+}));
96+97+vi.mock("../gateway/session-reset-service.js", () => ({
98+performGatewaySessionReset: () => ({ ok: true, key: "agent:main:main", entry: {} }),
99+}));
100+101+vi.mock("../gateway/session-utils.fs.js", () => ({
102+capArrayByJsonBytes: (items: unknown[]) => ({ items }),
103+}));
104+105+vi.mock("../gateway/sessions-patch.js", () => ({
106+applySessionsPatchToStore: () => ({ entry: {} }),
107+}));
108+109+vi.mock("../gateway/server-methods/agent-timestamp.js", () => ({
110+injectTimestamp: (message: string) => message,
111+timestampOptsFromConfig: () => ({}),
112+}));
113+23114function deferred<T>() {
24115let resolve!: (value: T) => void;
25116let reject!: (error?: unknown) => void;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。