MCPcopy Index your code
hub / github.com/coder/mux / normalizePendingTaskStatuses

Function normalizePendingTaskStatuses

src/node/services/tools/task.ts:319–351  ·  view source on GitHub ↗
(params: {
  taskService: ReturnType<typeof requireTaskService>;
  createdTasks: readonly SpawnedTaskInfo[];
  completedReports?: readonly CompletedTaskInfo[];
})

Source from the content-addressed store, hash-verified

317}
318
319function normalizePendingTaskStatuses(params: {
320 taskService: ReturnType<typeof requireTaskService>;
321 createdTasks: readonly SpawnedTaskInfo[];
322 completedReports?: readonly CompletedTaskInfo[];
323}): PendingTaskInfo[] {
324 const completedTaskIds = new Set((params.completedReports ?? []).map((report) => report.taskId));
325 return params.createdTasks.map((createdTask) => {
326 if (completedTaskIds.has(createdTask.taskId)) {
327 return {
328 taskId: createdTask.taskId,
329 status: "completed",
330 groupKind: createdTask.groupKind,
331 label: createdTask.label,
332 };
333 }
334
335 const currentStatus =
336 params.taskService.getAgentTaskStatus(createdTask.taskId) ?? createdTask.status;
337 return {
338 taskId: createdTask.taskId,
339 status:
340 currentStatus === "queued"
341 ? "queued"
342 : currentStatus === "starting"
343 ? "starting"
344 : currentStatus === "interrupted"
345 ? "interrupted"
346 : "running",
347 groupKind: createdTask.groupKind,
348 label: createdTask.label,
349 };
350 });
351}
352
353export const createTaskTool: ToolFactory = (config: ToolConfiguration) => {
354 // Only advertise the `isolation` parameter on runtimes where sharing the parent checkout is

Callers 1

createTaskToolFunction · 0.85

Calls 2

getAgentTaskStatusMethod · 0.80
hasMethod · 0.45

Tested by

no test coverage detected