From 454b870cbba5a1db83cb5c4f702e68f093adfc46 Mon Sep 17 00:00:00 2001 From: notabd7-deepshard Date: Mon, 23 Mar 2026 19:28:06 -0700 Subject: [PATCH] truffile delete app fix, arxiv --- app-store/arxiv/arxiv_background.py | 77 +++++ app-store/arxiv/arxiv_bg_worker.py | 134 +++++++++ app-store/arxiv/arxiv_common.py | 42 +++ app-store/arxiv/arxiv_foreground.py | 92 ++++++ app-store/arxiv/arxiv_tools.py | 435 ++++++++++++++++++++++++++++ app-store/arxiv/icon.png | Bin 0 -> 147028 bytes app-store/arxiv/truffile.yaml | 87 ++++++ tests/test_transport_client.py | 44 +++ truffile/__init__.py | 16 + truffile/_version.py | 6 +- truffile/transport/client.py | 10 +- 11 files changed, 939 insertions(+), 4 deletions(-) create mode 100644 app-store/arxiv/arxiv_background.py create mode 100644 app-store/arxiv/arxiv_bg_worker.py create mode 100644 app-store/arxiv/arxiv_common.py create mode 100644 app-store/arxiv/arxiv_foreground.py create mode 100644 app-store/arxiv/arxiv_tools.py create mode 100644 app-store/arxiv/icon.png create mode 100644 app-store/arxiv/truffile.yaml create mode 100644 tests/test_transport_client.py diff --git a/app-store/arxiv/arxiv_background.py b/app-store/arxiv/arxiv_background.py new file mode 100644 index 0000000..821f431 --- /dev/null +++ b/app-store/arxiv/arxiv_background.py @@ -0,0 +1,77 @@ +from __future__ import annotations + +import atexit +import logging +import os +import sys + +from app_runtime.background import BackgroundRunContext, run_background +from truffle.app.background_pb2 import BackgroundContext + +from arxiv_bg_worker import ArxivBackgroundWorker + +logger = logging.getLogger("arxiv.background") +logger.setLevel(logging.INFO) + +_worker: ArxivBackgroundWorker | None = None +_PRIORITY_DEFAULT = getattr( + BackgroundContext, + "PRIORITY_DEFAULT", + getattr(BackgroundContext, "PRIORITY_HIGH", 1), +) + + +def _is_verify_mode() -> bool: + return bool(sys.argv and len(sys.argv) > 1 and "verify" in sys.argv[1].lower()) + + +def _ensure_worker() -> ArxivBackgroundWorker: + global _worker + if _worker is None: + interests = str(os.getenv("ARXIV_RESEARCH_INTERESTS", "")).strip() + _worker = ArxivBackgroundWorker(interests_raw=interests) + return _worker + + +def _submit(ctx: BackgroundRunContext, content: str) -> None: + ctx.bg.submit_context( + content=content, + uris=[], + priority=_PRIORITY_DEFAULT, + ) + + +def arxiv_ambient(ctx: BackgroundRunContext) -> None: + worker = _ensure_worker() + result = worker.run_cycle() + + if result.error: + logger.error("ArXiv background cycle failed", extra={"error": result.error}) + return + if not result.content: + logger.info("ArXiv background cycle produced no new recommendations") + return + + _submit(ctx, result.content) + + +def verify() -> int: + worker = _ensure_worker() + ok, message = worker.verify() + if ok: + logger.info(message) + return 0 + logger.error(message) + return 1 + + +def _cleanup() -> None: + global _worker + _worker = None + + +if __name__ == "__main__": + atexit.register(_cleanup) + if _is_verify_mode(): + sys.exit(verify()) + run_background(arxiv_ambient) diff --git a/app-store/arxiv/arxiv_bg_worker.py b/app-store/arxiv/arxiv_bg_worker.py new file mode 100644 index 0000000..3a2c0da --- /dev/null +++ b/app-store/arxiv/arxiv_bg_worker.py @@ -0,0 +1,134 @@ +from __future__ import annotations + +import json +from dataclasses import dataclass +from datetime import timezone +import logging +from typing import Any + +import arxiv + +from arxiv_common import get_bg_state_path, parse_research_interests + +logger = logging.getLogger("arxiv.bg_worker") +logger.setLevel(logging.INFO) + + +@dataclass +class ArxivRecommendation: + interest: str + paper_id: str + title: str + published: str + abs_url: str + summary: str + + +@dataclass +class BgRunResult: + content: str | None = None + error: str | None = None + + +class ArxivBackgroundWorker: + def __init__(self, interests_raw: str) -> None: + self._interests_raw = interests_raw + self._client = arxiv.Client() + self._state_path = get_bg_state_path() + + @property + def interests(self) -> list[str]: + return parse_research_interests(self._interests_raw) + + def verify(self) -> tuple[bool, str]: + interests = self.interests + if not interests: + return False, "No research interests configured. Provide at least one interest." + return True, f"ArXiv background configured with {len(interests)} interest(s)." + + def run_cycle(self) -> BgRunResult: + interests = self.interests + if not interests: + return BgRunResult(error="no_interests") + + state = self._load_state() + seen_ids: set[str] = set(state.get("seen_ids") or []) + recommendations: list[ArxivRecommendation] = [] + + for interest in interests: + for paper in self._search_interest(interest, max_results=8): + paper_id = paper.get_short_id() + if not paper_id or paper_id in seen_ids: + continue + published_iso = paper.published.astimezone(timezone.utc).date().isoformat() + recommendations.append( + ArxivRecommendation( + interest=interest, + paper_id=paper_id, + title=paper.title.strip(), + published=published_iso, + abs_url=f"https://arxiv.org/abs/{paper_id}", + summary=" ".join((paper.summary or "").split())[:450], + ) + ) + seen_ids.add(paper_id) + if len(recommendations) >= 3: + break + if len(recommendations) >= 3: + break + + if not recommendations: + return BgRunResult(content=None) + + state["seen_ids"] = sorted(list(seen_ids))[-1500:] + self._save_state(state) + return BgRunResult(content=self._build_context(recommendations)) + + def _search_interest(self, interest: str, *, max_results: int) -> list[arxiv.Result]: + try: + search = arxiv.Search( + query=interest, + max_results=max_results, + sort_by=arxiv.SortCriterion.SubmittedDate, + ) + return list(self._client.results(search)) + except Exception as exc: + logger.warning("arXiv search failed for interest '%s': %s", interest, exc) + return [] + + def _load_state(self) -> dict[str, Any]: + path = self._state_path + try: + if not path.exists(): + return {"seen_ids": []} + data = json.loads(path.read_text(encoding="utf-8")) + if isinstance(data, dict): + return data + except Exception as exc: + logger.warning("Failed to load BG state: %s", exc) + return {"seen_ids": []} + + def _save_state(self, state: dict[str, Any]) -> None: + path = self._state_path + try: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(state, indent=2, sort_keys=True), encoding="utf-8") + except Exception as exc: + logger.warning("Failed to save BG state: %s", exc) + + def _build_context(self, items: list[ArxivRecommendation]) -> str: + lines: list[str] = [ + "These are research papers the user likes.", + "Please use a research tool like Exa or web search to read each paper and provide the user a summary and notes.", + "", + "Recommended papers:", + ] + for idx, item in enumerate(items, start=1): + lines.append( + f"{idx}. {item.title} (arXiv:{item.paper_id}, published {item.published})" + ) + lines.append(f" Interest match: {item.interest}") + lines.append(f" URL: {item.abs_url}") + if item.summary: + lines.append(f" Abstract snippet: {item.summary}") + return "\n".join(lines) diff --git a/app-store/arxiv/arxiv_common.py b/app-store/arxiv/arxiv_common.py new file mode 100644 index 0000000..7ef1bd8 --- /dev/null +++ b/app-store/arxiv/arxiv_common.py @@ -0,0 +1,42 @@ +from __future__ import annotations + +import os +from pathlib import Path + +MAX_RESULTS = 50 +DEFAULT_STORAGE_PATH = Path.home() / ".arxiv-mcp-server" / "papers" +DEFAULT_BG_STATE_PATH = Path("/root/.arxiv-truffle/arxiv_bg_state.json") + + +def get_storage_path() -> Path: + raw = str(os.getenv("ARXIV_STORAGE_PATH", "")).strip() + path = Path(raw) if raw else DEFAULT_STORAGE_PATH + path = path.resolve() + path.mkdir(parents=True, exist_ok=True) + return path + + +def get_bg_state_path() -> Path: + raw = str(os.getenv("ARXIV_BG_STATE_PATH", "")).strip() + path = Path(raw) if raw else DEFAULT_BG_STATE_PATH + path.parent.mkdir(parents=True, exist_ok=True) + return path + + +def parse_research_interests(raw: str | None) -> list[str]: + if not raw: + return [] + normalized = raw.replace("\n", ",") + out: list[str] = [] + seen: set[str] = set() + for part in normalized.split(","): + interest = part.strip() + if not interest: + continue + key = interest.lower() + if key in seen: + continue + seen.add(key) + out.append(interest) + return out + diff --git a/app-store/arxiv/arxiv_foreground.py b/app-store/arxiv/arxiv_foreground.py new file mode 100644 index 0000000..aaf48d3 --- /dev/null +++ b/app-store/arxiv/arxiv_foreground.py @@ -0,0 +1,92 @@ +from __future__ import annotations + +import logging +from typing import Any + +from app_runtime.mcp import create_mcp_server, run_mcp_server + +from arxiv_tools import ( + build_deep_analysis_prompt, + download_paper, + list_papers, + read_paper, + search_papers, +) +from mcp.types import Icon + +logger = logging.getLogger("arxiv.foreground") +logger.setLevel(logging.INFO) + +mcp = create_mcp_server("arxiv") + + +@mcp.tool( + "search_papers", + description=( + "Search arXiv papers with optional date/category filters. " + "Use quoted phrases for exact matches (for example: \"multi-agent systems\") " + "and categories for precision (for example: cs.AI, cs.LG, cs.CL)." + ), + icons=[Icon(src="https://raw.githubusercontent.com/phosphor-icons/core/main/assets/regular/magnifying-glass.svg")], +) +async def tool_search_papers( + query: str, + max_results: int = 10, + date_from: str | None = None, + date_to: str | None = None, + categories: list[str] | None = None, + sort_by: str = "relevance", +) -> dict[str, Any]: + return await search_papers( + query=query, + max_results=max_results, + date_from=date_from, + date_to=date_to, + categories=categories, + sort_by=sort_by, + ) + + +@mcp.tool( + "download_paper", + description=( + "Download an arXiv paper by ID and convert it to markdown for local reading. " + "Use check_status=true to poll conversion progress." + ), + icons=[Icon(src="https://raw.githubusercontent.com/phosphor-icons/core/main/assets/regular/download-simple.svg")], +) +async def tool_download_paper( + paper_id: str, + check_status: bool = False, +) -> dict[str, Any]: + return await download_paper(paper_id=paper_id, check_status=check_status) + + +@mcp.tool( + "list_papers", + description="List papers currently downloaded to local storage.", + icons=[Icon(src="https://raw.githubusercontent.com/phosphor-icons/core/main/assets/regular/list.svg")], +) +async def tool_list_papers() -> dict[str, Any]: + return await list_papers() + + +@mcp.tool( + "read_paper", + description="Read full markdown content for a downloaded paper by arXiv ID.", + icons=[Icon(src="https://raw.githubusercontent.com/phosphor-icons/core/main/assets/regular/book-open-text.svg")], +) +async def tool_read_paper(paper_id: str) -> dict[str, Any]: + return await read_paper(paper_id=paper_id) + + +@mcp.prompt( + "deep-paper-analysis", + description="Generate a structured deep analysis instruction set for a paper ID.", +) +async def prompt_deep_paper_analysis(paper_id: str) -> list[dict[str, str]]: + return [{"role": "user", "content": build_deep_analysis_prompt(paper_id)}] + + +if __name__ == "__main__": + run_mcp_server(mcp, logger) diff --git a/app-store/arxiv/arxiv_tools.py b/app-store/arxiv/arxiv_tools.py new file mode 100644 index 0000000..c263d59 --- /dev/null +++ b/app-store/arxiv/arxiv_tools.py @@ -0,0 +1,435 @@ +from __future__ import annotations + +import asyncio +import logging +import xml.etree.ElementTree as et +from dataclasses import dataclass +from datetime import datetime +from pathlib import Path +from typing import Any + +import arxiv +import httpx +from dateutil import parser as date_parser +from pypdf import PdfReader + +from arxiv_common import MAX_RESULTS, get_storage_path + +logger = logging.getLogger("arxiv.tools") +logger.setLevel(logging.INFO) + +ARXIV_API_URL = "https://export.arxiv.org/api/query" +ARXIV_NS = { + "atom": "http://www.w3.org/2005/Atom", + "arxiv": "http://arxiv.org/schemas/atom", +} + +VALID_CATEGORIES = { + "cs", + "econ", + "eess", + "math", + "physics", + "q-bio", + "q-fin", + "stat", + "astro-ph", + "cond-mat", + "gr-qc", + "hep-ex", + "hep-lat", + "hep-ph", + "hep-th", + "math-ph", + "nlin", + "nucl-ex", + "nucl-th", + "quant-ph", +} + + +@dataclass +class ConversionStatus: + paper_id: str + status: str + started_at: datetime + completed_at: datetime | None = None + error: str | None = None + + +_conversion_statuses: dict[str, ConversionStatus] = {} +_SLASH_TOKEN = "__arxiv_slash__" + + +def _safe_paper_filename(paper_id: str) -> str: + return paper_id.replace("/", _SLASH_TOKEN) + + +def _get_paper_path(paper_id: str, suffix: str = ".md") -> Path: + storage = get_storage_path() + storage.mkdir(parents=True, exist_ok=True) + return storage / f"{_safe_paper_filename(paper_id)}{suffix}" + + +def list_stored_paper_ids() -> list[str]: + storage = get_storage_path() + ids: list[str] = [] + for path in storage.glob("*.md"): + ids.append(path.stem.replace(_SLASH_TOKEN, "/")) + return ids + + +def _validate_categories(categories: list[str]) -> bool: + for category in categories: + prefix = category.split(".", 1)[0] if "." in category else category + if prefix not in VALID_CATEGORIES: + logger.warning("Unknown category prefix: %s", prefix) + return False + return True + + +def _optimize_query(query: str) -> str: + if any(field in query for field in ["ti:", "au:", "abs:", "cat:", "AND", "OR", "ANDNOT"]): + return query + if query.startswith('"') and query.endswith('"'): + return query + return query + + +def _parse_arxiv_atom_response(xml_text: str) -> list[dict[str, Any]]: + results: list[dict[str, Any]] = [] + try: + root = et.fromstring(xml_text) + except et.ParseError as exc: + raise ValueError(f"Failed to parse arXiv API response: {exc}") from exc + + for entry in root.findall("atom:entry", ARXIV_NS): + id_elem = entry.find("atom:id", ARXIV_NS) + if id_elem is None or not id_elem.text: + continue + + paper_id = id_elem.text.split("/abs/")[-1] + short_id = paper_id.split("v", 1)[0] if "v" in paper_id else paper_id + + title_elem = entry.find("atom:title", ARXIV_NS) + title = title_elem.text.strip().replace("\n", " ") if title_elem is not None and title_elem.text else "" + + authors: list[str] = [] + for author in entry.findall("atom:author", ARXIV_NS): + name_elem = author.find("atom:name", ARXIV_NS) + if name_elem is not None and name_elem.text: + authors.append(name_elem.text) + + summary_elem = entry.find("atom:summary", ARXIV_NS) + abstract = summary_elem.text.strip().replace("\n", " ") if summary_elem is not None and summary_elem.text else "" + + categories: list[str] = [] + for cat in entry.findall("arxiv:primary_category", ARXIV_NS): + term = cat.get("term") + if term: + categories.append(term) + for cat in entry.findall("atom:category", ARXIV_NS): + term = cat.get("term") + if term and term not in categories: + categories.append(term) + + published_elem = entry.find("atom:published", ARXIV_NS) + published = published_elem.text if published_elem is not None and published_elem.text else "" + + pdf_url: str | None = None + for link in entry.findall("atom:link", ARXIV_NS): + if link.get("title") == "pdf": + pdf_url = link.get("href") + break + if not pdf_url: + pdf_url = f"https://arxiv.org/pdf/{paper_id}" + + results.append( + { + "id": short_id, + "title": title, + "authors": authors, + "abstract": abstract, + "categories": categories, + "published": published, + "url": pdf_url, + "resource_uri": f"arxiv://{short_id}", + } + ) + + return results + + +async def _raw_arxiv_search( + *, + query: str, + max_results: int = 10, + sort_by: str = "relevance", + date_from: str | None = None, + date_to: str | None = None, + categories: list[str] | None = None, +) -> list[dict[str, Any]]: + query_parts: list[str] = [] + + if query.strip(): + query_parts.append(f"({query})") + + if categories: + category_filter = " OR ".join(f"cat:{cat}" for cat in categories) + query_parts.append(f"({category_filter})") + + if date_from or date_to: + try: + start_date = date_parser.parse(date_from).strftime("%Y%m%d0000") if date_from else "199107010000" + end_date = date_parser.parse(date_to).strftime("%Y%m%d2359") if date_to else datetime.now().strftime("%Y%m%d2359") + except (ValueError, TypeError) as exc: + raise ValueError(f"Invalid date format. Use YYYY-MM-DD format: {exc}") from exc + query_parts.append(f"submittedDate:[{start_date}+TO+{end_date}]") + + if not query_parts: + raise ValueError("No search criteria provided") + + final_query = " AND ".join(query_parts) + sort_map = {"relevance": "relevance", "date": "submittedDate"} + encoded_query = final_query.replace(" AND ", "+AND+").replace(" OR ", "+OR+").replace(" ", "+") + url = ( + f"{ARXIV_API_URL}?search_query={encoded_query}" + f"&max_results={max_results}" + f"&sortBy={sort_map.get(sort_by, 'relevance')}" + "&sortOrder=descending" + ) + + async with httpx.AsyncClient(timeout=30.0) as client: + response = await client.get(url) + response.raise_for_status() + return _parse_arxiv_atom_response(response.text) + + +def _process_paper(paper: arxiv.Result) -> dict[str, Any]: + return { + "id": paper.get_short_id(), + "title": paper.title, + "authors": [author.name for author in paper.authors], + "abstract": paper.summary, + "categories": paper.categories, + "published": paper.published.isoformat(), + "url": paper.pdf_url, + "resource_uri": f"arxiv://{paper.get_short_id()}", + } + + +async def search_papers( + *, + query: str, + max_results: int = 10, + date_from: str | None = None, + date_to: str | None = None, + categories: list[str] | None = None, + sort_by: str = "relevance", +) -> dict[str, Any]: + try: + bounded_max = min(int(max_results), MAX_RESULTS) + if categories and not _validate_categories(categories): + return {"status": "error", "message": "Invalid category provided. Please check arXiv category names."} + + if date_from or date_to: + results = await _raw_arxiv_search( + query=_optimize_query(query) if query.strip() else "", + max_results=bounded_max, + sort_by=sort_by, + date_from=date_from, + date_to=date_to, + categories=categories, + ) + return {"status": "success", "total_results": len(results), "papers": results} + + client = arxiv.Client() + query_parts: list[str] = [] + if query.strip(): + query_parts.append(f"({_optimize_query(query)})") + if categories: + query_parts.append("(" + " OR ".join(f"cat:{cat}" for cat in categories) + ")") + if not query_parts: + return {"status": "error", "message": "No search criteria provided"} + + final_query = " ".join(query_parts) + sort_criterion = arxiv.SortCriterion.SubmittedDate if sort_by == "date" else arxiv.SortCriterion.Relevance + search = arxiv.Search(query=final_query, max_results=bounded_max, sort_by=sort_criterion) + + papers: list[dict[str, Any]] = [] + for paper in client.results(search): + if len(papers) >= bounded_max: + break + papers.append(_process_paper(paper)) + return {"status": "success", "total_results": len(papers), "papers": papers} + except arxiv.ArxivError as exc: + return {"status": "error", "message": f"ArXiv API error - {exc}"} + except Exception as exc: + return {"status": "error", "message": str(exc)} + + +def _convert_pdf_to_markdown(paper_id: str, pdf_path: Path) -> None: + try: + reader = PdfReader(str(pdf_path)) + chunks: list[str] = [] + for index, page in enumerate(reader.pages, start=1): + text = page.extract_text() or "" + chunks.append(f"# Page {index}\n\n{text.strip()}\n") + markdown = "\n".join(chunks).strip() + if not markdown: + markdown = "No extractable text found in PDF." + md_path = _get_paper_path(paper_id, ".md") + md_path.write_text(markdown, encoding="utf-8") + status = _conversion_statuses.get(paper_id) + if status: + status.status = "success" + status.completed_at = datetime.now() + try: + pdf_path.unlink(missing_ok=True) + except Exception: + pass + except Exception as exc: + status = _conversion_statuses.get(paper_id) + if status: + status.status = "error" + status.completed_at = datetime.now() + status.error = str(exc) + + +async def download_paper(*, paper_id: str, check_status: bool = False) -> dict[str, Any]: + try: + if check_status: + status = _conversion_statuses.get(paper_id) + if not status: + if _get_paper_path(paper_id, ".md").exists(): + return { + "status": "success", + "message": "Paper is ready", + "resource_uri": f"file://{_get_paper_path(paper_id, '.md')}", + } + return {"status": "unknown", "message": "No download or conversion in progress"} + return { + "status": status.status, + "started_at": status.started_at.isoformat(), + "completed_at": status.completed_at.isoformat() if status.completed_at else None, + "error": status.error, + "message": f"Paper conversion {status.status}", + } + + if _get_paper_path(paper_id, ".md").exists(): + return { + "status": "success", + "message": "Paper already available", + "resource_uri": f"file://{_get_paper_path(paper_id, '.md')}", + } + + if paper_id in _conversion_statuses: + status = _conversion_statuses[paper_id] + return { + "status": status.status, + "message": f"Paper conversion {status.status}", + "started_at": status.started_at.isoformat(), + } + + pdf_path = _get_paper_path(paper_id, ".pdf") + client = arxiv.Client() + _conversion_statuses[paper_id] = ConversionStatus( + paper_id=paper_id, + status="downloading", + started_at=datetime.now(), + ) + + paper = next(client.results(arxiv.Search(id_list=[paper_id]))) + paper.download_pdf(dirpath=pdf_path.parent, filename=pdf_path.name) + + status = _conversion_statuses[paper_id] + status.status = "converting" + asyncio.create_task(asyncio.to_thread(_convert_pdf_to_markdown, paper_id, pdf_path)) + return { + "status": "converting", + "message": "Paper downloaded, conversion started", + "started_at": status.started_at.isoformat(), + } + except StopIteration: + return {"status": "error", "message": f"Paper {paper_id} not found on arXiv"} + except Exception as exc: + return {"status": "error", "message": f"Error: {exc}"} + + +async def list_papers() -> dict[str, Any]: + try: + paper_ids = list_stored_paper_ids() + if not paper_ids: + return {"status": "success", "total_papers": 0, "papers": []} + + client = arxiv.Client() + results = client.results(arxiv.Search(id_list=paper_ids)) + papers: list[dict[str, Any]] = [] + for result in results: + papers.append( + { + "id": result.get_short_id(), + "title": result.title, + "summary": result.summary, + "authors": [author.name for author in result.authors], + "links": [link.href for link in result.links], + "pdf_url": result.pdf_url, + } + ) + return {"status": "success", "total_papers": len(paper_ids), "papers": papers} + except Exception as exc: + return {"status": "error", "message": f"Error: {exc}"} + + +async def read_paper(*, paper_id: str) -> dict[str, Any]: + try: + paper_path = _get_paper_path(paper_id, ".md") + if not paper_path.exists(): + return { + "status": "error", + "message": f"Paper {paper_id} not found in storage. You may need to download it first using download_paper.", + } + content = paper_path.read_text(encoding="utf-8") + return {"status": "success", "paper_id": paper_id, "content": content} + except Exception as exc: + return {"status": "error", "message": f"Error reading paper: {exc}"} + + +DEEP_PAPER_ANALYSIS_PROMPT = """ +You are an AI research assistant tasked with analyzing academic papers from arXiv. + +AVAILABLE TOOLS: +1. read_paper: retrieve full content of a downloaded paper +2. download_paper: download and convert a paper if not present +3. search_papers: find related papers +4. list_papers: inspect which papers are already downloaded + +WORKFLOW: +- First list_papers, then download_paper if needed, then read_paper. +- If the paper is unavailable, use search_papers for related work and context. + +ANALYSIS STRUCTURE: +1) Executive Summary +2) Research Context +3) Methodology Analysis +4) Results Analysis +5) Practical Implications +6) Theoretical Implications +7) Future Directions +8) Broader Impact + +Keep the analysis technically rigorous, concise, and actionable. +""" + + +def build_deep_analysis_prompt(paper_id: str) -> str: + return ( + f"Analyze paper {paper_id}.\n\n" + "Present your analysis with:\n" + "1. Executive Summary (3-5 sentences)\n" + "2. Detailed Analysis\n" + "3. Visual Breakdown (figures/tables)\n" + "4. Related Work Map\n" + "5. Implementation Notes\n\n" + f"{DEEP_PAPER_ANALYSIS_PROMPT}" + ) diff --git a/app-store/arxiv/icon.png b/app-store/arxiv/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..903f6b537a78e25b08d194be031abbb14c20586f GIT binary patch literal 147028 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

qhW2rtb^-)zmYGcAMTxJO-x6 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 S!k&ZuGcmNhUw!xK>;D5U8bp%- literal 0 HcmV?d00001 diff --git a/app-store/arxiv/truffile.yaml b/app-store/arxiv/truffile.yaml new file mode 100644 index 0000000..902dfae --- /dev/null +++ b/app-store/arxiv/truffile.yaml @@ -0,0 +1,87 @@ +metadata: + name: ArXiv + bundle_id: org.deepshard.arxiv + description: | + Search arXiv research papers, read downloaded papers, and get background recommendations. + icon_file: ./icon.png + background: + process: + cmd: + - python + - arxiv_background.py + working_directory: / + environment: + PYTHONUNBUFFERED: "1" + default_schedule: + type: interval + interval: + duration: 30m + prod_duration: 60m + daily_window: "00:00-23:59" + foreground: + process: + cmd: + - python + - arxiv_foreground.py + working_directory: / + environment: + PYTHONUNBUFFERED: "1" + +steps: + - name: Install Python dependencies + type: bash + run: | + pip install --no-cache-dir \ + "arxiv>=2.1.0" \ + "httpx>=0.24.0" \ + "python-dateutil>=2.8.2" \ + "pypdf>=5.0.0" + + - name: Copy application files + type: files + files: + - source: ./arxiv_common.py + destination: ./arxiv_common.py + - source: ./arxiv_tools.py + destination: ./arxiv_tools.py + - source: ./arxiv_bg_worker.py + destination: ./arxiv_bg_worker.py + - source: ./arxiv_foreground.py + destination: ./arxiv_foreground.py + - source: ./arxiv_background.py + destination: ./arxiv_background.py + + - name: Configure research interests + type: text + ui_state_on_show: user_interaction_ready + ui_state_on_complete: move_to_background + content: | + Tell Truffle what research areas you care about. + + The background worker will use these interests to find relevant papers and + submit context recommending which papers the model should summarize. + + Examples: + - multi-agent systems, reinforcement learning, LLM safety + - cs.AI, cs.LG, retrieval augmented generation + - diffusion models, interpretability, robustness + fields: + - name: research_interests + label: Research Interests (comma-separated) + type: text + placeholder: multi-agent systems, reinforcement learning, LLM safety + env: ARXIV_RESEARCH_INTERESTS + validator: + type: bash + run: | + python ./arxiv_background.py --verify + timeout: 60 + error_message: | + Please enter at least one research interest (comma-separated). + + - name: Finalize installation + type: bash + run: | + mkdir -p /root/.arxiv-mcp-server/papers + mkdir -p /root/.arxiv-truffle + echo "ArXiv MCP installation complete!" diff --git a/tests/test_transport_client.py b/tests/test_transport_client.py new file mode 100644 index 0000000..db2700d --- /dev/null +++ b/tests/test_transport_client.py @@ -0,0 +1,44 @@ +import asyncio +import sys +from unittest.mock import Mock + +import truffile +from truffile.transport.client import GRPC_MAX_MESSAGE_BYTES, TruffleClient + + +class _ReadyChannel: + async def channel_ready(self) -> None: + return None + + +def test_connect_sets_grpc_message_size_limits(monkeypatch): + captured = {} + fake_channel = _ReadyChannel() + + def fake_insecure_channel(address, options=None): + captured["address"] = address + captured["options"] = options + return fake_channel + + monkeypatch.setattr("truffile.transport.client.aio.insecure_channel", fake_insecure_channel) + monkeypatch.setattr("truffile.transport.client.TruffleOSStub", Mock(return_value="stub")) + + client = TruffleClient("127.0.0.1:80", token="token") + asyncio.run(client.connect()) + + assert client.channel is fake_channel + assert client.stub == "stub" + assert captured["address"] == "127.0.0.1:80" + assert captured["options"] == [ + ("grpc.max_receive_message_length", GRPC_MAX_MESSAGE_BYTES), + ("grpc.max_send_message_length", GRPC_MAX_MESSAGE_BYTES), + ] + + +def test_init_prepends_repo_root_for_bundled_truffle(monkeypatch): + repo_root = "/Users/truffle/work/truffile" + monkeypatch.setattr(sys, "path", ["/tmp/external"]) + + truffile._ensure_bundled_truffle_on_path() + + assert sys.path[0] == repo_root diff --git a/truffile/__init__.py b/truffile/__init__.py index 32eda02..97f20b5 100644 --- a/truffile/__init__.py +++ b/truffile/__init__.py @@ -1,8 +1,24 @@ import os +import sys +from pathlib import Path # Keep gRPC from enabling fork support in this CLI process. os.environ["GRPC_ENABLE_FORK_SUPPORT"] = "false" + +def _ensure_bundled_truffle_on_path() -> None: + repo_root = Path(__file__).resolve().parent.parent + bundled_truffle = repo_root / "truffle" + if not bundled_truffle.is_dir(): + return + + repo_root_str = str(repo_root) + if repo_root_str not in sys.path: + sys.path.insert(0, repo_root_str) + + +_ensure_bundled_truffle_on_path() + try: from ._version import __version__ except ImportError: diff --git a/truffile/_version.py b/truffile/_version.py index d9a7fcc..8565e31 100644 --- a/truffile/_version.py +++ b/truffile/_version.py @@ -28,7 +28,7 @@ commit_id: COMMIT_ID __commit_id__: COMMIT_ID -__version__ = version = '0.1.15.dev20' -__version_tuple__ = version_tuple = (0, 1, 15, 'dev20') +__version__ = version = '0.1.9.dev38' +__version_tuple__ = version_tuple = (0, 1, 9, 'dev38') -__commit_id__ = commit_id = 'g13b0fc12b' +__commit_id__ = commit_id = 'g2aac4c451' diff --git a/truffile/transport/client.py b/truffile/transport/client.py index e88b123..41d6715 100644 --- a/truffile/transport/client.py +++ b/truffile/transport/client.py @@ -27,6 +27,8 @@ from truffle.app.background_pb2 import BackgroundApp, BackgroundAppRuntimePolicy from truffile.schedule import parse_runtime_policy +GRPC_MAX_MESSAGE_BYTES = 32 * 1024 * 1024 + def get_client_metadata() -> ClientMetadata: from truffile import __version__ @@ -82,7 +84,13 @@ def _metadata(self) -> list: return [("session", self.token)] async def connect(self, timeout: float = 15.0): - self.channel = aio.insecure_channel(self.address) + self.channel = aio.insecure_channel( + self.address, + options=[ + ("grpc.max_receive_message_length", GRPC_MAX_MESSAGE_BYTES), + ("grpc.max_send_message_length", GRPC_MAX_MESSAGE_BYTES), + ], + ) await asyncio.wait_for(self.channel.channel_ready(), timeout=timeout) self.stub = TruffleOSStub(self.channel)