





















@@ -276,43 +276,57 @@ describe("shouldSkipLocalCliCredentialEpoch", () => {
276276expect(context.systemPrompt).toBe(
277277"prepend system\n\nhook system\n\nappend system\n\nCurrent model identity: test-cli/test-model. If asked what model you are, answer with this value for the current run.",
278278);
279-expect(hookRunner.runBeforePromptBuild).toHaveBeenCalledWith(
280- {
281- prompt: "latest ask",
282- messages: [
283- { role: "user", content: "earlier context", timestamp: 1 },
284- {
285- role: "assistant",
286- content: [{ type: "text", text: "earlier reply" }],
287- api: "responses",
288- provider: "test-cli",
289- model: "test-model",
290- usage: {
291- input: 0,
292- output: 0,
293- cacheRead: 0,
294- cacheWrite: 0,
295- totalTokens: 0,
296- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
297-},
298-stopReason: "stop",
299-timestamp: 2,
279+expect(hookRunner.runBeforePromptBuild).toHaveBeenCalledTimes(1);
280+const beforePromptBuildCalls = hookRunner.runBeforePromptBuild.mock.calls as unknown as Array<
281+[unknown, unknown]
282+>;
283+expect(beforePromptBuildCalls[0]?.[0]).toEqual({
284+prompt: "latest ask",
285+messages: [
286+{ role: "user", content: "earlier context", timestamp: 1 },
287+{
288+role: "assistant",
289+content: [{ type: "text", text: "earlier reply" }],
290+api: "responses",
291+provider: "test-cli",
292+model: "test-model",
293+usage: {
294+input: 0,
295+output: 0,
296+cacheRead: 0,
297+cacheWrite: 0,
298+totalTokens: 0,
299+cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
300300},
301-],
302-},
303-expect.objectContaining({
304-runId: "run-test",
305-agentId: "main",
306-sessionKey: "agent:main:test",
307-sessionId: "session-test",
308-workspaceDir: dir,
309-modelProviderId: "test-cli",
310-modelId: "test-model",
311-messageProvider: "acp",
312-trigger: "user",
313-channelId: "telegram",
314-}),
315-);
301+stopReason: "stop",
302+timestamp: 2,
303+},
304+],
305+});
306+const hookContext = beforePromptBuildCalls[0]?.[1] as
307+| {
308+runId?: string;
309+agentId?: string;
310+sessionKey?: string;
311+sessionId?: string;
312+workspaceDir?: string;
313+modelProviderId?: string;
314+modelId?: string;
315+messageProvider?: string;
316+trigger?: string;
317+channelId?: string;
318+}
319+| undefined;
320+expect(hookContext?.runId).toBe("run-test");
321+expect(hookContext?.agentId).toBe("main");
322+expect(hookContext?.sessionKey).toBe("agent:main:test");
323+expect(hookContext?.sessionId).toBe("session-test");
324+expect(hookContext?.workspaceDir).toBe(dir);
325+expect(hookContext?.modelProviderId).toBe("test-cli");
326+expect(hookContext?.modelId).toBe("test-model");
327+expect(hookContext?.messageProvider).toBe("acp");
328+expect(hookContext?.trigger).toBe("user");
329+expect(hookContext?.channelId).toBe("telegram");
316330} finally {
317331fs.rmSync(dir, { recursive: true, force: true });
318332}
@@ -391,17 +405,20 @@ describe("shouldSkipLocalCliCredentialEpoch", () => {
391405});
392406393407expect(context.params.prompt).toBe("turn prepend\n\nlatest ask\n\nturn append");
394-expect(hookRunner.runAgentTurnPrepare).toHaveBeenCalledWith(
395-{
396-prompt: "latest ask",
397-messages: [],
398-queuedInjections: [],
399-},
400-expect.objectContaining({
401-runId: "run-test-turn-prepare",
402-sessionKey: "agent:main:test",
403-}),
404-);
408+expect(hookRunner.runAgentTurnPrepare).toHaveBeenCalledTimes(1);
409+const agentTurnPrepareCalls = hookRunner.runAgentTurnPrepare.mock.calls as unknown as Array<
410+[unknown, unknown]
411+>;
412+expect(agentTurnPrepareCalls[0]?.[0]).toEqual({
413+prompt: "latest ask",
414+messages: [],
415+queuedInjections: [],
416+});
417+const turnPrepareContext = agentTurnPrepareCalls[0]?.[1] as
418+| { runId?: string; sessionKey?: string }
419+| undefined;
420+expect(turnPrepareContext?.runId).toBe("run-test-turn-prepare");
421+expect(turnPrepareContext?.sessionKey).toBe("agent:main:test");
405422expect(hookRunner.runBeforePromptBuild).not.toHaveBeenCalled();
406423expect(hookRunner.runBeforeAgentStart).not.toHaveBeenCalled();
407424} finally {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。