
































@@ -16,6 +16,14 @@ describe("cron tool flat-params", () => {
1616callGatewayToolMock.mockResolvedValue({ ok: true });
1717});
181819+function firstGatewayToolCall<TParams>(): [string, unknown, TParams] {
20+const call = callGatewayToolMock.mock.calls.at(0);
21+if (!call) {
22+throw new Error("expected callGatewayTool to be called");
23+}
24+return call as [string, unknown, TParams];
25+}
26+1927it("preserves explicit top-level sessionKey during flat-params recovery", async () => {
2028const tool = createCronTool(
2129{ agentSessionKey: "agent:main:discord:channel:ops" },
@@ -28,11 +36,7 @@ describe("cron tool flat-params", () => {
2836message: "do stuff",
2937});
303831-const [method, _gatewayOpts, params] = callGatewayToolMock.mock.calls[0] as [
32-string,
33-unknown,
34-{ sessionKey?: string },
35-];
39+const [method, _gatewayOpts, params] = firstGatewayToolCall<{ sessionKey?: string }>();
3640expect(method).toBe("cron.add");
3741expect(params.sessionKey).toBe("agent:main:telegram:group:-100123:topic:99");
3842});
@@ -49,14 +53,10 @@ describe("cron tool flat-params", () => {
4953message: "send report",
5054});
515552-const [method, _gatewayOpts, params] = callGatewayToolMock.mock.calls[0] as [
53-string,
54-unknown,
55-{
56-schedule?: unknown;
57-payload?: unknown;
58-},
59-];
56+const [method, _gatewayOpts, params] = firstGatewayToolCall<{
57+schedule?: unknown;
58+payload?: unknown;
59+}>();
6060expect(method).toBe("cron.add");
6161expect(params.schedule).toEqual({
6262kind: "cron",
@@ -81,13 +81,9 @@ describe("cron tool flat-params", () => {
8181message: "send reminder",
8282});
838384-const [method, _gatewayOpts, params] = callGatewayToolMock.mock.calls[0] as [
85-string,
86-unknown,
87-{
88-schedule?: unknown;
89-},
90-];
84+const [method, _gatewayOpts, params] = firstGatewayToolCall<{
85+schedule?: unknown;
86+}>();
9187expect(method).toBe("cron.add");
9288expect(params.schedule).toEqual({
9389kind: "cron",
@@ -107,14 +103,10 @@ describe("cron tool flat-params", () => {
107103staggerMs: 30_000,
108104});
109105110-const [method, _gatewayOpts, params] = callGatewayToolMock.mock.calls[0] as [
111-string,
112-unknown,
113-{
114-id?: string;
115-patch?: { schedule?: unknown };
116-},
117-];
106+const [method, _gatewayOpts, params] = firstGatewayToolCall<{
107+id?: string;
108+patch?: { schedule?: unknown };
109+}>();
118110expect(method).toBe("cron.update");
119111expect(params.id).toBe("job-123");
120112expect(params.patch?.schedule).toEqual({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。