{"version":3,"sources":["jsdelivr-header.js","/npm/@yiliang114/cr-bot@5.0.0/src/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,6nBCiEA,QAAA,wBAvEA,MAAA,OAAA,QAAA,iBACA,QAAA,gBAAA,QAAA,UACA,eAAA,QAAA,kBACA,SAAA,QAAA,YACA,SAAA,QAAA,sBACA,UAAA,QAAA,uBACA,SAAA,QAAA,sBACA,SAAA,QAAA,sBAEA,aAAA,QAAA,kBAAA,SAEA,MAAM,QAAU,IAAI,OAAA,QAAQ,CAC1B,KAAM,QAAQ,IAAI,eAIpB,SAAS,cAAc,EAAkB,EAAiB,GACxD,OAAQ,GACN,IAAK,SACH,OAAO,IAAI,SAAA,eAAe,EAAQ,GACpC,IAAK,SACH,OAAO,IAAI,SAAA,eAAe,EAAQ,GACpC,IAAK,SACH,OAAO,IAAI,SAAA,eAAe,EAAQ,GACpC,IAAK,UAEH,OAAO,IAAI,UAAA,gBAAgB,EAAQ,OAAS,GAAW,GACzD,QACE,MAAM,IAAI,MAAM,yBAAyB,KAE/C,CAGA,eAAe,aACb,EACA,EACA,GAGA,QAAQ,IAAI,QAAA,QAAM,KAAK,KAAK,QAAQ,EAAS,gCAC7C,QAAQ,IAAI,QAAA,QAAM,MAAM,IACxB,QAAQ,IAAI,QAAA,QAAM,KAAK,6CAGvB,MAAO,EAAO,GAAY,EAAO,KAAK,MAAM,KAE5C,IAAK,IAAU,EACb,MAAM,IAAI,MAAM,0DAGlB,IAEE,MAAM,QAAe,QAAQ,KAAK,OAAO,cAAc,CACrD,QACA,KAAM,EACN,aAAc,EAAO,YACrB,KAAM,MAAM,EAAS,uCAAuC,MAI9D,OADA,QAAQ,IAAI,QAAA,QAAM,MAAM,mDACjB,CACT,CAAE,MAAO,GAKP,MAJA,QAAQ,MACN,QAAA,QAAM,IAAI,iCACV,aAAiB,MAAQ,EAAM,QAAU,iBAErC,CACR,CACF,CAGO,eAAe,YAAY,GAChC,IACE,IAAK,QAAQ,IAAI,aACf,MAAM,IAAI,MAAM,gDAIlB,MAAM,QAAc,EAAA,SAAA,iBAAgB,EAAO,KAAM,EAAO,aACxD,QAAQ,IAAI,QAAS,GAGrB,MAAM,EAAS,QAAQ,IAAI,YAAc,QAAQ,IAAI,gBAAkB,QAAQ,IAAI,gBAAkB,QAAQ,IAAI,gBAAkB,QAAQ,IAAI,gBACzI,EAAU,QAAQ,IAAI,iBAAmB,QAAQ,IAAI,iBAAmB,QAAQ,IAAI,iBAAmB,QAAQ,IAAI,kBAAoB,QAAQ,IAAI,SACnJ,EAAW,cAAc,EAAO,SAAU,EAAQ,GAExD,QAAQ,IAAI,QAAS,GAErB,QAAQ,IAAI,MAAQ,EAAM,MAC1B,QAAQ,IAAI,KAAO,EAAM,KAEzB,MAAM,QAAuB,EAAA,eAAA,mBAC3B,EAAM,MACN,EAAM,KACN,IAIM,MAAO,EAAe,GAAE,QAAE,EAAU,IAAO,GAAkB,GAErE,IAAK,EAAa,SAAW,EAAQ,OAEnC,YADA,QAAQ,IAAI,oBAKd,MAAM,QAAc,EAAA,eAAA,uBAClB,EACA,EACA,EAAO,aAGJ,IACH,QAAQ,IAAI,QAAA,QAAM,IAAI,UAAW,0BACjC,QAAQ,KAAK,IAGf,MAAM,QAAe,EAAS,QAAQ,SAGhC,aAAa,EAAO,QAAS,EAAO,SAAU,EACtD,CAAE,MAAO,GACP,QAAQ,MACN,QAAA,QAAM,IAAI,UACV,aAAiB,MAAQ,EAAM,QAAU,iBAE3C,QAAQ,KAAK,EACf,CACF","file":"/npm/@yiliang114/cr-bot@5.0.0/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@yiliang114/cr-bot@5.0.0/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { Octokit } from '@octokit/rest';\nimport chalk from 'chalk';\nimport { generateReviewComment, getCompareCommits } from './autoCodeView';\nimport { getIssueContent } from './github';\nimport { AliyunProvider } from './providers/aliyun';\nimport { BailianProvider } from './providers/bailian';\nimport { DoubaoProvider } from './providers/doubao';\nimport { OpenAIProvider } from './providers/openai';\nimport { AIProviderInterface, ReviewConfig } from './types';\nexport * from './autoCodeView';\n\nconst octokit = new Octokit({\n  auth: process.env.GITHUB_TOKEN,\n});\n\n// 独立工具函数：获取 AI 服务商实例\nfunction getAIProvider(provider: string, apiKey?: string, baseURL?: string): AIProviderInterface {\n  switch (provider) {\n    case 'doubao':\n      return new DoubaoProvider(apiKey, baseURL);\n    case 'openai':\n      return new OpenAIProvider(apiKey, baseURL);\n    case 'aliyun':\n      return new AliyunProvider(apiKey, baseURL);\n    case 'bailian':\n      // 百炼 CodingPlan 使用 OpenAI 兼容格式\n      return new BailianProvider(apiKey, baseURL, undefined, true);\n    default:\n      throw new Error(`Unsupported provider: ${provider}`);\n  }\n}\n\n// 独立工具函数：格式化输出并创建 GitHub 评论\nasync function formatOutput(\n  content: string,\n  provider: string,\n  config: ReviewConfig,\n) {\n  // 控制台输出\n  console.log(chalk.blue.bold(`\\n🔍 ${provider.toUpperCase()} Review Report`));\n  console.log(chalk.green(content));\n  console.log(chalk.gray('----------------------------------------'));\n\n  // 提取 owner 和 repo\n  const [owner, repoName] = config.repo.split('/');\n\n  if (!owner || !repoName) {\n    throw new Error('Invalid repository format. Expected format: owner/repo');\n  }\n\n  try {\n    // 创建 GitHub 评论\n    const result = await octokit.rest.issues.createComment({\n      owner,\n      repo: repoName,\n      issue_number: config.issueNumber,\n      body: `## ${provider.toUpperCase()} Code Review Report\\n\\n${content}`,\n    });\n\n    console.log(chalk.green('✅ Successfully posted review comment to GitHub'));\n    return result;\n  } catch (error) {\n    console.error(\n      chalk.red('Error posting review comment:'),\n      error instanceof Error ? error.message : 'Unknown error',\n    );\n    throw error;\n  }\n}\n\n// 主逻辑函数\nexport async function reviewIssue(config: ReviewConfig) {\n  try {\n    if (!process.env.GITHUB_TOKEN) {\n      throw new Error('GITHUB_TOKEN environment variable is not set');\n    }\n\n    // 获取 Issue 内容\n    const issue = await getIssueContent(config.repo, config.issueNumber);\n    console.log('issue', issue);\n\n    // 初始化 AI 提供商 - 优先使用环境变量中的 API Key 和 Base URL\n    const apiKey = process.env.AI_API_KEY || process.env.ALIYUN_API_KEY || process.env.OPENAI_API_KEY || process.env.DOUBAO_API_KEY || process.env.BAILIAN_API_KEY;\n    const baseURL = process.env.ALIYUN_BASE_URL || process.env.OPENAI_BASE_URL || process.env.DOUBAO_BASE_URL || process.env.BAILIAN_BASE_URL || process.env.BASE_URL;\n    const provider = getAIProvider(config.provider, apiKey, baseURL);\n\n    console.log('issue', issue);\n\n    process.env.OWNER = issue.owner;\n    process.env.REPO = issue.repo;\n\n    const compareCommits = await getCompareCommits(\n      issue.owner,\n      issue.repo,\n      issue,\n    );\n\n    // console.log('compareCommits', compareCommits);\n    const { files: changedFiles = [], commits = [] } = compareCommits || {};\n\n    if (!changedFiles.length && !commits.length) {\n      console.log('no changed files');\n      return;\n    }\n\n    // 3. generate review comment\n    const diffs = await generateReviewComment(\n      changedFiles,\n      commits,\n      config.issueNumber,\n    );\n\n    if (!diffs) {\n      console.log(chalk.red('Error:'), 'Issue content is empty');\n      process.exit(1);\n    }\n    // 生成分析报告\n    const result = await provider.analyze(diffs);\n\n    // 格式化输出并创建 GitHub 评论\n    await formatOutput(result.content, config.provider, config);\n  } catch (error) {\n    console.error(\n      chalk.red('Error:'),\n      error instanceof Error ? error.message : 'Unknown error',\n    );\n    process.exit(1);\n  }\n}\n"]}