Spaces:
Runtime error
Runtime error
| """Implementation Link Agent — connects the paper to its GitHub repository.""" | |
| from __future__ import annotations | |
| from researchlink.agents.base import BaseAgent | |
| from researchlink.providers.base import AgentRole | |
| from researchlink.schemas.paper import PaperMetadata | |
| from researchlink.schemas.repository import RepoAnalysis | |
| from researchlink.services import offline | |
| SYSTEM_IMPL = """You are a senior software engineer helping researchers understand code repositories. | |
| Be cautious about claims. Never assert exact reproducibility unless verified. | |
| Use [needs-verification] for any unconfirmed claims about the code.""" | |
| class ImplementationLinkAgent(BaseAgent): | |
| name = "ImplementationLinkAgent" | |
| task_role = AgentRole.coding | |
| def run( | |
| self, | |
| meta: PaperMetadata, | |
| repo: RepoAnalysis, | |
| ) -> dict[str, str]: | |
| self.log("Generating implementation link file...") | |
| content = self._generate(meta, repo) | |
| return {"implementation-link.md": content} | |
| def _generate(self, meta: PaperMetadata, repo: RepoAnalysis) -> str: | |
| if not repo.url: | |
| return offline.implementation_link(meta, repo) | |
| context = ( | |
| f"Paper: {meta.title}\n" | |
| f"GitHub URL: {repo.url}\n" | |
| f"Owner/Repo: {repo.owner}/{repo.repo_name}\n" | |
| f"Language: {repo.detected_language or 'unknown'}\n" | |
| f"Frameworks: {', '.join(repo.detected_frameworks)}\n" | |
| f"Top-level folders: {repo.top_level_folders[:15]}\n" | |
| f"Top-level files: {repo.top_level_files[:15]}\n" | |
| f"Has tests: {repo.has_tests}\n" | |
| f"Setup commands: {repo.setup_commands}\n" | |
| f"Is likely official impl: {repo.is_likely_official_impl}\n" | |
| f"Confidence: {repo.official_impl_confidence}\n" | |
| ) | |
| if repo.readme_content: | |
| context += f"README (first 1000 chars):\n{repo.readme_content[:1000]}\n" | |
| prompt = f"""Based on the following repository information, write implementation-link.md. | |
| {context} | |
| Paper areas: {', '.join(meta.areas)} | |
| Paper tags: {', '.join(meta.tags)} | |
| Write with these EXACT sections: | |
| # Implementation Link: {meta.title} | |
| ## Official or Related Code Repository | |
| ## What the Repository Contains | |
| ## How It Maps to the Paper | |
| ## Important Folders | |
| ## Suggested Reading Order for the Code | |
| ## Reproducibility Notes | |
| ## Known Metadata or Documentation Issues | |
| ## Suggested Future Improvements | |
| Use [needs-verification] for unconfirmed claims. | |
| Do not assert exact reproducibility of paper results.""" | |
| return self._complete( | |
| SYSTEM_IMPL, prompt, | |
| extractive=lambda: offline.implementation_link(meta, repo), | |
| ) | |