({
api,
taskId: passedTaskId,
start,
...options
}: WaitUntilCompletedOptions)
| 57 | } |
| 58 | |
| 59 | export const waitUntilCompleted = async ({ |
| 60 | api, |
| 61 | taskId: passedTaskId, |
| 62 | start, |
| 63 | ...options |
| 64 | }: WaitUntilCompletedOptions): Promise<string> => { |
| 65 | const completed = new Set<string>() |
| 66 | const handler = (id: string) => completed.add(id) |
| 67 | api.on(RooCodeEventName.TaskCompleted, handler) |
| 68 | try { |
| 69 | const taskId = passedTaskId ?? (await start!()) |
| 70 | await waitFor(() => completed.has(taskId), options) |
| 71 | return taskId |
| 72 | } finally { |
| 73 | api.off(RooCodeEventName.TaskCompleted, handler) |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)) |
no test coverage detected