/**
 * 会话级 system append：替代 code-dev Skill 的 shell 注入。
 * 在宿主 configureCodeRuntimeTool 之后调用。
 */
import { runInspect } from './actions/inspect.js'

/** 生成首轮 appendSystemPrompt 中的 CodeTool 上下文（inspect --brief） */
export async function buildCodeToolSessionAppend(): Promise<string> {
  const data = await runInspect(true)
  const lines: string[] = [
    'System reminder: 本会话已启用 CodeTool，业务代码仓库是唯一开发入口。',
    '分析/阅读/修改仓库、架构文档、code.md 时必须使用 CodeTool，禁止对 codeWorkDir 使用裸 Read/Edit/Write/Glob/Grep/Bash 改业务文件。',
    '标准流程：prepare → inspect → read/search → apply → run；无 code.md 时用 record 首建 overview/commands；复杂 git 用 GitTool（若已启用）。',
    `codeWorkDir: ${String(data.codeWorkDir ?? '')}`,
  ]

  const mem = String(data.codeMemory ?? '').trim()
  if (mem) {
    lines.push('', '## code.md 摘要', mem)
  } else {
    lines.push(
      '',
      '（尚无 code.md；开发任务开始后请 CodeTool action=record 首建并写入 overview/commands）',
    )
  }

  const tree = data.tree
  if (Array.isArray(tree) && tree.length > 0) {
    lines.push('', '## 仓库目录（摘要）', ...tree.slice(0, 30).map(String))
  }

  const manifests = data.manifests
  if (Array.isArray(manifests) && manifests.length > 0) {
    lines.push('', '## 清单文件', manifests.join(', '))
  }

  return lines.join('\n')
}
