/**
 * Workspace layout section describing the agent's working directory.
 */

import { readdirSync } from 'node:fs';
import { join } from 'node:path';

export function buildWorkspaceLayout(agentCwd: string): string {
  let entries: string[];
  try {
    entries = readdirSync(agentCwd, { withFileTypes: true })
      .filter(d => d.isDirectory() && d.name !== '.cw')
      .map(d => d.name);
  } catch {
    return '';
  }

  if (entries.length === 0) {
    return `

<workspace>
Your working directory is: ${agentCwd}
This is an isolated git worktree. Other agents may be working in parallel on separate branches — do not assume you have exclusive access to the repository.
</workspace>`;
  }

  const lines = entries.map(
    name => `- \`${name}/\` — ${join(agentCwd, name)}`
  );

  return `

<workspace>
Your working directory is: ${agentCwd}
This is an isolated git worktree. Other agents may be working in parallel on separate branches — do not assume you have exclusive access to the repository.
The following project directories contain the source code (git worktrees):

${lines.join('\n')}
</workspace>`;
}
