(
records?: readonly WorkspaceTurnTaskHandleRecord[]
)
| 6646 | } |
| 6647 | |
| 6648 | private async countActiveWorkspaceTurns( |
| 6649 | records?: readonly WorkspaceTurnTaskHandleRecord[] |
| 6650 | ): Promise<number> { |
| 6651 | const candidateWorkspaceTurns = |
| 6652 | records ?? |
| 6653 | (await this.taskHandleStore.listAllWorkspaceTurns({ |
| 6654 | statuses: ["queued", "starting", "running"], |
| 6655 | })); |
| 6656 | let count = 0; |
| 6657 | const countedWorkspaceIds = new Set<string>(); |
| 6658 | const queuedRecords: WorkspaceTurnTaskHandleRecord[] = []; |
| 6659 | for (const record of candidateWorkspaceTurns) { |
| 6660 | if (!this.isActiveWorkspaceTurn(record)) { |
| 6661 | continue; |
| 6662 | } |
| 6663 | if (!(await this.isLiveWorkspaceTurn(record))) { |
| 6664 | await this.settleStaleWorkspaceTurn(record); |
| 6665 | continue; |
| 6666 | } |
| 6667 | if (record.status === "queued") { |
| 6668 | queuedRecords.push(record); |
| 6669 | continue; |
| 6670 | } |
| 6671 | count += 1; |
| 6672 | countedWorkspaceIds.add(record.workspaceId); |
| 6673 | } |
| 6674 | for (const record of queuedRecords) { |
| 6675 | if (countedWorkspaceIds.has(record.workspaceId)) { |
| 6676 | continue; |
| 6677 | } |
| 6678 | count += 1; |
| 6679 | countedWorkspaceIds.add(record.workspaceId); |
| 6680 | } |
| 6681 | return count; |
| 6682 | } |
| 6683 | |
| 6684 | private async listActiveWorkspaceTurnTaskIdsForOwner( |
| 6685 | ownerWorkspaceId: string |
no test coverage detected