import type { ContentBlockParam } from '@anthropic-ai/sdk/resources/messages.js' import type { Command } from '../commands.js' import { isUltrareviewEnabled } from './review/ultrareviewEnabled.js' // Legal wants the explicit surface name plus a docs link visible before the // user triggers, so the description carries "Claude Code on the web" + URL. const CCR_TERMS_URL = 'https://code.claude.com/docs/en/claude-code-on-the-web' const LOCAL_REVIEW_PROMPT = (args: string) => ` You are an expert code reviewer. Follow these steps: 1. If no PR number is provided in the args, run \`gh pr list\` to show open PRs 2. If a PR number is provided, run \`gh pr view \` to get PR details 3. Run \`gh pr diff \` to get the diff 4. Analyze the changes and provide a thorough code review that includes: - Overview of what the PR does - Analysis of code quality and style - Specific suggestions for improvements - Any potential issues or risks Keep your review concise but thorough. Focus on: - Code correctness - Following project conventions - Performance implications - Test coverage - Security considerations Format your review with clear sections and bullet points. PR number: ${args} ` const review: Command = { type: 'prompt', name: 'review', description: 'Review a pull request', progressMessage: 'reviewing pull request', contentLength: 0, source: 'builtin', async getPromptForCommand(args): Promise { return [{ type: 'text', text: LOCAL_REVIEW_PROMPT(args) }] }, } // /ultrareview is the ONLY entry point to the remote bughunter path — // /review stays purely local. local-jsx type renders the overage permission // dialog when free reviews are exhausted. const ultrareview: Command = { type: 'local-jsx', name: 'ultrareview', description: `~10–20 min · Finds and verifies bugs in your branch. Runs in Claude Code on the web. See ${CCR_TERMS_URL}`, isEnabled: () => isUltrareviewEnabled(), load: () => import('./review/ultrareviewCommand.js'), } export default review export { ultrareview }