





























@@ -200,10 +200,15 @@ describe("sessions tools", () => {
200200expect(schemaProp("sessions_list", "limit").type).toBe("number");
201201expect(schemaProp("sessions_list", "activeMinutes").type).toBe("number");
202202expect(schemaProp("sessions_list", "messageLimit").type).toBe("number");
203+expect(schemaProp("sessions_list", "label").type).toBe("string");
204+expect(schemaProp("sessions_list", "agentId").type).toBe("string");
205+expect(schemaProp("sessions_list", "search").type).toBe("string");
206+expect(schemaProp("sessions_list", "includeDerivedTitles").type).toBe("boolean");
207+expect(schemaProp("sessions_list", "includeLastMessage").type).toBe("boolean");
203208expect(schemaProp("sessions_send", "timeoutSeconds").type).toBe("number");
204209});
205210206-it("sessions_list filters kinds and includes messages", async () => {
211+it("sessions_list forwards mailbox filters and includes messages", async () => {
207212callGatewayMock.mockImplementation(async (opts: unknown) => {
208213const request = opts as { method?: string };
209214if (request.method === "sessions.list") {
@@ -216,6 +221,8 @@ describe("sessions tools", () => {
216221sessionId: "s-main",
217222updatedAt: 10,
218223lastChannel: "whatsapp",
224+derivedTitle: "Main mailbox",
225+lastMessagePreview: "Latest assistant update",
219226},
220227{
221228key: "discord:group:dev",
@@ -229,6 +236,8 @@ describe("sessions tools", () => {
229236runtimeMs: 42,
230237estimatedCostUsd: 0.0042,
231238childSessions: ["agent:main:subagent:worker"],
239+derivedTitle: "Dev room",
240+lastMessagePreview: "Need review on the patch",
232241},
233242{
234243key: "agent:main:dashboard:child",
@@ -275,11 +284,36 @@ describe("sessions tools", () => {
275284throw new Error("missing sessions_list tool");
276285}
277286278-const result = await tool.execute("call1", { messageLimit: 1 });
287+const result = await tool.execute("call1", {
288+agentId: "main",
289+label: "mailbox",
290+search: "review",
291+includeDerivedTitles: true,
292+includeLastMessage: true,
293+messageLimit: 1,
294+});
295+expect(callGatewayMock).toHaveBeenNthCalledWith(1, {
296+method: "sessions.list",
297+params: {
298+activeMinutes: undefined,
299+agentId: "main",
300+includeDerivedTitles: true,
301+includeGlobal: true,
302+includeLastMessage: true,
303+includeUnknown: true,
304+label: "mailbox",
305+limit: undefined,
306+search: "review",
307+spawnedBy: undefined,
308+},
309+});
279310const details = result.details as {
280311sessions?: Array<{
281312key?: string;
313+agentId?: string;
282314channel?: string;
315+derivedTitle?: string;
316+lastMessagePreview?: string;
283317spawnedBy?: string;
284318status?: string;
285319startedAt?: number;
@@ -292,7 +326,10 @@ describe("sessions tools", () => {
292326};
293327expect(details.sessions).toHaveLength(5);
294328const main = details.sessions?.find((s) => s.key === "main");
329+expect(main?.agentId).toBe("main");
295330expect(main?.channel).toBe("whatsapp");
331+expect(main?.derivedTitle).toBe("Main mailbox");
332+expect(main?.lastMessagePreview).toBe("Latest assistant update");
296333expect(main?.messages?.length).toBe(1);
297334expect(main?.messages?.[0]?.role).toBe("assistant");
298335@@ -302,6 +339,8 @@ describe("sessions tools", () => {
302339expect(group?.runtimeMs).toBe(42);
303340expect(group?.estimatedCostUsd).toBe(0.0042);
304341expect(group?.childSessions).toEqual(["agent:main:subagent:worker"]);
342+expect(group?.derivedTitle).toBe("Dev room");
343+expect(group?.lastMessagePreview).toBe("Need review on the patch");
305344306345const dashboardChild = details.sessions?.find((s) => s.key === "agent:main:dashboard:child");
307346expect(dashboardChild?.parentSessionKey).toBe("agent:main:main");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。