

























@@ -355,7 +355,7 @@ describe("sessions_spawn tool", () => {
355355356356const result = await tool.execute("call-task-name", {
357357task: "review subagent handling",
358-taskName: "review_subagents",
358+taskName: "review-subagents",
359359});
360360361361expectDetailFields(result.details, {
@@ -364,24 +364,45 @@ describe("sessions_spawn tool", () => {
364364});
365365const spawnArgs = mockCallArg(hoisted.spawnSubagentDirectMock, 0, 0, "spawnSubagentDirect");
366366expect(spawnArgs.task).toBe("review subagent handling");
367-expect(spawnArgs.taskName).toBe("review_subagents");
367+expect(spawnArgs.taskName).toBe("review-subagents");
368368});
369369370-it("rejects invalid taskName before spawning", async () => {
370+it("accepts underscore taskName aliases", async () => {
371371const tool = createSessionsSpawnTool({
372372agentSessionKey: "agent:main:main",
373373});
374374375-const result = await tool.execute("call-bad-task-name", {
375+const result = await tool.execute("call-underscore-task-name", {
376376task: "review subagent handling",
377-taskName: "Bad-Name",
377+taskName: "review_subagents",
378378});
379379380-expectDetailFields(result.details, { status: "error" });
381-expect(JSON.stringify(result.details)).toContain("Invalid taskName");
382-expect(hoisted.spawnSubagentDirectMock).not.toHaveBeenCalled();
380+expectDetailFields(result.details, {
381+status: "accepted",
382+childSessionKey: "agent:main:subagent:1",
383+});
384+const spawnArgs = mockCallArg(hoisted.spawnSubagentDirectMock, 0, 0, "spawnSubagentDirect");
385+expect(spawnArgs.taskName).toBe("review_subagents");
383386});
384387388+it.each(["Bad-Name", "code review", "-bad"])(
389+"rejects invalid taskName %s before spawning",
390+async (taskName) => {
391+const tool = createSessionsSpawnTool({
392+agentSessionKey: "agent:main:main",
393+});
394+395+const result = await tool.execute("call-bad-task-name", {
396+task: "review subagent handling",
397+ taskName,
398+});
399+400+expectDetailFields(result.details, { status: "error" });
401+expect(JSON.stringify(result.details)).toContain("Invalid taskName");
402+expect(hoisted.spawnSubagentDirectMock).not.toHaveBeenCalled();
403+},
404+);
405+385406it.each(["last", "all"])("rejects reserved taskName %s before spawning", async (taskName) => {
386407const tool = createSessionsSpawnTool({
387408agentSessionKey: "agent:main:main",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。