/**
 * Code 工作目录解析：与 GitTool 共用 WS_GIT_WORK_DIR / workspace/repo 约定，两包互不 import。
 */

import { isAbsolute, join } from 'node:path'

/** agent 根下的工具工作区容器目录 */
const AGENT_WORKSPACE_SUBDIR = 'workspace'
const CODE_REPO_SUBDIR = 'repo'

function resolveAgentWorkspaceDir(operWorkspaceDir: string): string {
  return join(operWorkspaceDir, AGENT_WORKSPACE_SUBDIR)
}

/**
 * 解析代码工作目录：优先 CODE_WORK_DIR，其次 WS_GIT_WORK_DIR，默认 workspace/repo。
 * 相对路径以 workspace/ 为基准；绝对路径原样使用。
 */
export function resolveCodeWorkDir(operWorkspaceDir: string): string {
  const workspaceDir = resolveAgentWorkspaceDir(operWorkspaceDir)
  const fromCode = process.env.CODE_WORK_DIR?.trim() ?? ''
  if (fromCode) {
    return isAbsolute(fromCode) ? fromCode : join(workspaceDir, fromCode)
  }
  const fromGit = process.env.WS_GIT_WORK_DIR?.trim() ?? ''
  if (!fromGit) {
    return join(workspaceDir, CODE_REPO_SUBDIR)
  }
  return isAbsolute(fromGit) ? fromGit : join(workspaceDir, fromGit)
}
