const { describe, test, expect, mock } = require("bun:test") describe("executeBackgroundContinuation - subagent metadata", () => { test("includes subagent in task_metadata when task has agent", async () => { //#given - mock manager.resume returning task with agent info const mockManager = { resume: async () => ({ id: "bg_task_001", description: "oracle consultation", agent: "oracle", status: "running", sessionID: "ses_resumed_123", }), } const mockCtx = { sessionID: "parent-session", callID: "call-456", metadata: mock(() => Promise.resolve()), } const mockExecutorCtx = { manager: mockManager, } const parentContext = { sessionID: "parent-session", messageID: "msg-parent", agent: "sisyphus", } const args = { session_id: "ses_resumed_123", prompt: "continue working", description: "resume oracle", load_skills: [], run_in_background: true, } //#when - executeBackgroundContinuation completes const { executeBackgroundContinuation } = require("./background-continuation") const result = await executeBackgroundContinuation(args, mockCtx, mockExecutorCtx, parentContext) //#then - task_metadata should contain subagent field expect(result).toContain("") expect(result).toContain("subagent: oracle") expect(result).toContain("session_id: ses_resumed_123") }) test("omits subagent from task_metadata when task agent is undefined", async () => { //#given - mock manager.resume returning task without agent const mockManager = { resume: async () => ({ id: "bg_task_002", description: "unknown task", agent: undefined, status: "running", sessionID: "ses_resumed_456", }), } const mockCtx = { sessionID: "parent-session", callID: "call-789", metadata: mock(() => Promise.resolve()), } const mockExecutorCtx = { manager: mockManager, } const parentContext = { sessionID: "parent-session", messageID: "msg-parent", agent: "sisyphus", } const args = { session_id: "ses_resumed_456", prompt: "continue", description: "resume task", load_skills: [], run_in_background: true, } //#when - executeBackgroundContinuation completes without agent const { executeBackgroundContinuation } = require("./background-continuation") const result = await executeBackgroundContinuation(args, mockCtx, mockExecutorCtx, parentContext) //#then - task_metadata should NOT contain subagent field expect(result).toContain("") expect(result).toContain("session_id: ses_resumed_456") expect(result).not.toContain("subagent:") }) })