Spaces:
Paused
Paused
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.Prompts = void 0; | |
| class Prompts { | |
| summarize; | |
| summarizeReleaseNotes; | |
| summarizeFileDiff = `## PR: $title | |
| ## Desc: $description | |
| ## Diff: | |
| \`\`\`diff | |
| $file_diff | |
| \`\`\` | |
| Instructions: Summarize changes in <100 words. Focus on logic/API changes. Check for: | |
| - Syntax errors, compilation errors, or incomplete code | |
| - Logic/API changes | |
| Then add exactly: [TRIAGE]: NEEDS_REVIEW | APPROVED | |
| - NEEDS_REVIEW: Logic/var changes, syntax errors, or incomplete code. | |
| - APPROVED: Typos/docs/format only. | |
| `; | |
| triageFileDiff = ``; | |
| summarizeChangesets = `Group and deduplicate the following changesets in this PR. | |
| Respond with updated changesets using the same format. | |
| Important: Provide ONLY the final summarized result. Do NOT include reasoning steps, "Step 1", "Step 2", or any other conversational filler. | |
| $raw_summary | |
| `; | |
| summarizePrefix = `## 📋 Summary of Changes | |
| $raw_summary | |
| `; | |
| summarizeShort = `Provide a concise, professional summary of changes and architectural impact. | |
| Format your response with: | |
| - **Overview**: 2-3 sentences on what this PR does | |
| - **Key Changes**: Bullet points of the most important modifications | |
| - **Architectural Impact**: How this affects the system design (if any) | |
| Requirements: | |
| - Use proper markdown formatting (headers, bullet points, bold text) | |
| - Focus strictly on PR facts | |
| - Max 300 words | |
| - No conversational filler, no "Step 1/2/3", no reasoning steps | |
| - No code blocks unless showing actual code examples | |
| `; | |
| reviewFileDiff = `## PR: $title | |
| ## Description: | |
| $description | |
| ## Summary: | |
| $short_summary | |
| ## Codebase Context (Symbol Graph) | |
| \`\`\` | |
| $remedy_context | |
| \`\`\` | |
| ## Instructions | |
| Review new hunks for substantive issues. Format comments starting with line range (e.g., "22-25:"). | |
| **CRITICAL - First Check**: Syntax errors, compilation errors, or incomplete/invalid code that would break the build or runtime. | |
| - If you see incomplete code, syntax errors, or code that won't compile: Mark as [CRITICAL] | [BUG] | |
| **Detailed Audit**: Inspect for: | |
| - **Mutation/Side-effects**: Does it change arguments? (e.g., modifying object/array arguments instead of returning a copy). | |
| - **Type Safety**: Implicit conversions or missing edge-case checks. | |
| - **Logic**: Off-by-one errors, race conditions, or unnecessary complexity. | |
| - **Syntax/Compilation**: Will this code compile and run? | |
| **Output Format**: | |
| - You MUST start each finding EXACTLY with: [LINE_START-LINE_END] | [LEVEL] | [TYPE] | |
| - Example: [22-25] | [CRITICAL] | [Security] | |
| - **Consequence**: Explain why this matters and the worst-case production failure | |
| - **Fix**: Provide a code block fix | |
| - **Suggestion**: Use GitHub suggestion format: \`\`\`suggestion [FIXED_CODE] \`\`\` | |
| - Use ACTUAL function/variable names from the codebase context | |
| - Do NOT use generic names like temp_var, fix_this, etc. | |
| - Match existing code style | |
| - **Confidence**: Score 0-100% at the end. Only show findings with confidence >= 80% for critical/major issues. | |
| If no issues found after rigorous audit: Respond ONLY with LGTM!. Do NOT include any conversational text. | |
| ## Changes in $filename: | |
| $patches | |
| `; | |
| reviewFileBatch = `## PR: $title | |
| ## Description: | |
| $description | |
| ## Summary: | |
| $short_summary | |
| ## Instructions | |
| Critical: You are reviewing a BATCH of multiple files. | |
| **For EACH file:** | |
| 1. Start with header: ### File: [filename] | |
| 2. **FIRST CHECK**: Syntax errors, compilation errors, or incomplete code (mark as [CRITICAL] | [BUG]) | |
| 3. Then audit for: | |
| - Mutation/Side-effects: Does it change arguments? | |
| - Type Safety: Implicit conversions or missing edge-case checks | |
| - Logic: Off-by-one errors, race conditions | |
| - Syntax/Compilation: Will this code compile and run? | |
| **Output Format**: | |
| - You MUST start each finding EXACTLY with: [LINE_START-LINE_END] | [LEVEL] | [TYPE] | |
| - Example: [22-25] | [CRITICAL] | [Security] | |
| - Explain consequence and worst-case production failure | |
| - Provide fix with \`\`\`suggestion [FIXED_CODE] \`\`\` format | |
| - Use ACTUAL function/variable names from codebase | |
| - Confidence score 0-100% (>= 80% for critical/major) | |
| For files with no issues: Respond ONLY with ### File: [filename]\nLGTM!. Do NOT include any conversational text. | |
| ## Files to Review in this Batch: | |
| $batch_content | |
| `; | |
| comment = `Reply to this instruction in the context of the PR. | |
| ## PR: $title | |
| ## Description: | |
| $description | |
| ## Summary: | |
| $short_summary | |
| ## Instructions | |
| Reply directly to the comment below. Begin with "@user". | |
| ## New Comment | |
| \`\`\` | |
| $comment | |
| \`\`\` | |
| ## Context (Diff) | |
| \`\`\`diff | |
| $diff | |
| \`\`\` | |
| `; | |
| fixSuggestion = `The code suggestion for $filename failed CI: | |
| $suggestion | |
| CI Error: $error | |
| Correct the suggestion block. Respond ONLY with the fixed block. | |
| `; | |
| contextAwareFixSuggestion = `## Codebase Context for Fix | |
| $remedy_context | |
| ## Review Comment Requiring Fix | |
| $suggestion | |
| ## CI Error | |
| $error | |
| ## Instructions | |
| You are fixing a code review finding. Using the codebase context above: | |
| 1. The fix MUST use existing function/variable names from the context (do NOT invent names like temp_var or fix_this) | |
| 2. Match the coding style and patterns already present in the codebase | |
| 3. If referencing existing code patterns, cite them: Based on pattern in $filename:$line | |
| 4. Ensure the fix is semantically correct for this specific codebase | |
| Respond ONLY with the corrected suggestion block using GitHub markdown: | |
| \`\`\`suggestion | |
| [FIXED_CODE] | |
| \`\`\` | |
| `; | |
| issueAnalysis = `## Repository Context (Codebase Structure) | |
| $codebase_structure | |
| ## Issue | |
| Title: $title | |
| Description: $description | |
| Task: $task_description | |
| ## Instructions | |
| You are PRIX, an expert software engineering assistant. Based on the issue and codebase structure above, provide a concise response with exactly these 4 sections: | |
| 1. **Problem Summary**: 2-3 sentences describing the issue | |
| 2. **Root Cause**: Key root cause (1-2 sentences max) | |
| 3. **Fix Plan**: Numbered list of steps (max 5 steps) | |
| 4. **IDE Prompt**: Complete prompt for an AI IDE/agent to fix this issue | |
| Be specific and reference relevant directories/files from the codebase structure where applicable. | |
| `; | |
| constructor(summarize = '', summarizeReleaseNotes = '') { | |
| this.summarize = summarize; | |
| this.summarizeReleaseNotes = summarizeReleaseNotes; | |
| } | |
| renderSummarizeFileDiff(inputs, reviewSimpleChanges) { | |
| let prompt = this.summarizeFileDiff; | |
| if (reviewSimpleChanges === false) { | |
| prompt += this.triageFileDiff; | |
| } | |
| return inputs.render(prompt); | |
| } | |
| renderSummarizeChangesets(inputs) { | |
| return inputs.render(this.summarizeChangesets); | |
| } | |
| renderSummarize(inputs) { | |
| const prompt = this.summarizePrefix + this.summarize; | |
| return inputs.render(prompt); | |
| } | |
| renderSummarizeShort(inputs) { | |
| const prompt = this.summarizePrefix + this.summarizeShort; | |
| return inputs.render(prompt); | |
| } | |
| renderSummarizeReleaseNotes(inputs) { | |
| const prompt = this.summarizePrefix + this.summarizeReleaseNotes; | |
| return inputs.render(prompt); | |
| } | |
| renderComment(inputs) { | |
| return inputs.render(this.comment); | |
| } | |
| renderReviewFileDiff(inputs) { | |
| return inputs.render(this.reviewFileDiff); | |
| } | |
| renderReviewFileBatch(inputs) { | |
| return inputs.render(this.reviewFileBatch); | |
| } | |
| renderFixSuggestion(inputs, suggestion, error) { | |
| const ins = inputs.clone(); | |
| ins.suggestion = suggestion; | |
| ins.error = error; | |
| return ins.render(this.fixSuggestion); | |
| } | |
| renderContextAwareFixSuggestion(inputs, suggestion, error) { | |
| const ins = inputs.clone(); | |
| ins.suggestion = suggestion; | |
| ins.error = error; | |
| return ins.render(this.contextAwareFixSuggestion); | |
| } | |
| renderIssueAnalysis(inputs) { | |
| return inputs.render(this.issueAnalysis); | |
| } | |
| } | |
| exports.Prompts = Prompts; | |
| //# sourceMappingURL=prompts.js.map |