Spaces:
Runtime error
Runtime error
| """Curated prototypes and example inputs for TorchReview Copilot.""" | |
| from __future__ import annotations | |
| from typing import Dict, List | |
| try: | |
| from .triage_models import IssueLabel, TriageExample, TriagePrototype | |
| from .tasks import list_tasks | |
| except ImportError: | |
| from triage_models import IssueLabel, TriageExample, TriagePrototype | |
| from tasks import list_tasks | |
| TASK_KIND_TO_LABEL: Dict[str, IssueLabel] = { | |
| "syntax_fix": "syntax", | |
| "bug_fix": "logic", | |
| "optimization": "performance", | |
| } | |
| TRACEBACK_BY_TASK_ID: Dict[str, str] = { | |
| "syntax_fix_invoice_totals": ( | |
| "Traceback (most recent call last):\n" | |
| " File \"services/billing/reconciliation.py\", line 3\n" | |
| " for record in records\n" | |
| " ^\n" | |
| "SyntaxError: expected ':'" | |
| ), | |
| "bug_fix_session_windows": ( | |
| "AssertionError: collapse_sessions([{'minute': 1}, {'minute': 3}, {'minute': 8}], 4)\n" | |
| "Expected: [(1, 3), (8, 8)]\n" | |
| "Actual: [(1, 8)]\n" | |
| "Boundary handling merges the final session instead of starting a new one." | |
| ), | |
| "optimization_rank_active_users": ( | |
| "BenchmarkWarning: rank_active_users exceeded the 450ms budget on a nightly export fixture.\n" | |
| "Profiler hint: repeated scans over the full event list and nested loops dominate runtime." | |
| ), | |
| } | |
| SUMMARY_BY_TASK_ID: Dict[str, str] = { | |
| "syntax_fix_invoice_totals": "Broken parser state in a billing helper blocks reconciliation jobs.", | |
| "bug_fix_session_windows": "Session-boundary logic fails on inclusive idle-timeout edges.", | |
| "optimization_rank_active_users": "A nightly ranking job is correct on small fixtures but too slow at production scale.", | |
| } | |
| CONTEXT_BY_TASK_ID: Dict[str, str] = { | |
| "syntax_fix_invoice_totals": ( | |
| "Context window: this helper runs in an end-of-day billing reconciliation job. " | |
| "Keep the public function signature intact and restore correct totals for mixed integer/string inputs." | |
| ), | |
| "bug_fix_session_windows": ( | |
| "Context window: this function groups sorted product analytics events into sessions for retention dashboards. " | |
| "Boundary behavior must stay deterministic because downstream reports depend on it." | |
| ), | |
| "optimization_rank_active_users": ( | |
| "Context window: this pipeline feeds a nightly export on a small CPU instance. " | |
| "Maintain identical output ordering while improving scalability on larger event volumes." | |
| ), | |
| } | |
| def _prototype_text( | |
| task_id: str, | |
| title: str, | |
| description: str, | |
| repo_summary: str, | |
| goal: str, | |
| visible_tests: List[str], | |
| starter_code: str, | |
| traceback_text: str, | |
| ) -> str: | |
| visible = "\n".join(f"- {item}" for item in visible_tests) or "- none" | |
| return ( | |
| f"Title: {title}\n" | |
| f"Problem: {description}\n" | |
| f"Repo context: {repo_summary}\n" | |
| f"Goal: {goal}\n" | |
| f"Observed failure:\n{traceback_text}\n" | |
| f"Visible checks:\n{visible}\n" | |
| f"Candidate code:\n{starter_code}\n" | |
| f"Task id: {task_id}\n" | |
| ) | |
| def build_examples() -> List[TriageExample]: | |
| """Create stable UI examples from the task catalog.""" | |
| examples: List[TriageExample] = [] | |
| for task in list_tasks(): | |
| label = TASK_KIND_TO_LABEL[task.task_kind] | |
| examples.append( | |
| TriageExample( | |
| key=task.task_id, | |
| title=task.title, | |
| label=label, | |
| summary=SUMMARY_BY_TASK_ID[task.task_id], | |
| code=task.starter_code, | |
| traceback_text=TRACEBACK_BY_TASK_ID[task.task_id], | |
| context_window=CONTEXT_BY_TASK_ID[task.task_id], | |
| task_id=task.task_id, | |
| ) | |
| ) | |
| return examples | |
| def build_prototypes() -> List[TriagePrototype]: | |
| """Build canonical triage prototypes from the OpenEnv tasks.""" | |
| prototypes: List[TriagePrototype] = [] | |
| for task in list_tasks(): | |
| traceback_text = TRACEBACK_BY_TASK_ID[task.task_id] | |
| prototypes.append( | |
| TriagePrototype( | |
| task_id=task.task_id, | |
| title=task.title, | |
| label=TASK_KIND_TO_LABEL[task.task_kind], | |
| summary=SUMMARY_BY_TASK_ID[task.task_id], | |
| reference_text=_prototype_text( | |
| task.task_id, | |
| task.title, | |
| task.task_description, | |
| task.repo_summary, | |
| task.goal, | |
| list(task.visible_tests), | |
| task.reference_code, | |
| traceback_text, | |
| ), | |
| starter_code=task.starter_code, | |
| reference_code=task.reference_code, | |
| traceback_text=traceback_text, | |
| ) | |
| ) | |
| return prototypes | |