From 40ce01d0d649c1101e75cce5b018d46f3edb4b8e Mon Sep 17 00:00:00 2001 From: Matt Harris Date: Thu, 30 Apr 2026 22:26:19 -0400 Subject: [PATCH 1/4] chore: add brand-styled logo + screenshot assets for adk-docs PR Adds the two assets the upstream adk-docs PR needs: - docs/assets/parallel.png: Parallel symbol logo (1080x1080), copied from assets.parallel.ai. Symbol-only (no wordmark) since the catalog already shows the partner name as text next to the icon. - docs/assets/research_agent.png: rendered terminal screenshot of the example agent run. Uses Parallel's brand fonts (FT System Mono) and palette per assets.parallel.ai/llms.txt: Off-white #fcfcfa background, Index black #1d1b16 body text, Signal #fb631b prompt accents, Neural #d8d0bf for the trace line. scripts/render_screenshot.py: regenerates the screenshot PNG from docs/screenshot.txt. Downloads FT System Mono fonts from assets.parallel.ai on demand (gitignored, browser-style User-Agent required to avoid 403 from the asset CDN). Also regenerates docs/screenshot.txt with current public tool names (was generated against the previous _underscore-prefixed names). --- .gitignore | 5 + docs/assets/parallel.png | Bin 0 -> 17528 bytes docs/assets/research_agent.png | Bin 0 -> 43556 bytes docs/screenshot.txt | 12 +-- scripts/render_screenshot.py | 173 +++++++++++++++++++++++++++++++++ 5 files changed, 180 insertions(+), 10 deletions(-) create mode 100644 docs/assets/parallel.png create mode 100644 docs/assets/research_agent.png create mode 100644 scripts/render_screenshot.py diff --git a/.gitignore b/.gitignore index 27e0605..98b0d18 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,8 @@ venv/ .idea/ .vscode/ .DS_Store + +# Brand asset working files (downloaded by scripts/render_screenshot.py at runtime) +docs/assets/FTSystemMono-*.ttf +docs/assets/parallel-symbol-*.png +docs/assets/parallel-logo-*.png diff --git a/docs/assets/parallel.png b/docs/assets/parallel.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6fe326725067afa01f64702432886e591646cb GIT binary patch literal 17528 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 r`^YpGsST8k8{6@pkpFF#6VP{@r=9%<&O*bxW literal 0 HcmV?d00001 diff --git a/docs/screenshot.txt b/docs/screenshot.txt index 96b6f5e..840da23 100644 --- a/docs/screenshot.txt +++ b/docs/screenshot.txt @@ -2,15 +2,7 @@ $ python research_agent.py >>> What does Parallel's Search API do? Cite parallel.ai in one sentence. -Parallel’s Search API is a tool designed specifically for AI agents and LLMs to perform natural language web searches and retrieve structured, token-efficient data. Unlike traditional search engines that rely on keywords, it processes a "natural language objective" to return ranked URLs with extended excerpts optimized for model consumption, reducing hallucinations and improving accuracy in complex research tasks ([parallel.ai](https://docs.parallel.ai/search/search-quickstart)). - -According to the developer documentation: "The Search API takes a natural language objective and returns relevant excerpts optimized for LLMs, replacing multiple keyword searches with a single call for broad or complex queries" ([parallel.ai](https://docs.parallel.ai/search/search-quickstart)). - -### Key Features -* **Search Modes:** Offers specialized modes including **one-shot** (comprehensive), **agentic** (concise for multi-step reasoning), and **fast** (latency-sensitive) ([parallel.ai](https://docs.parallel.ai/search/modes)). -* **LLM Optimization:** Excerpts are curated to fit efficiently into a model's context window, lowering token costs while maintaining high relevance ([parallel.ai](https://parallel.ai/)). -* **Accuracy Benchmarks:** Parallel claims its enterprise deep research API achieves up to 48% accuracy on complex benchmarks, significantly outperforming the native browsing capabilities of standard LLMs ([parallel.ai](https://parallel.ai/)). -* **Evidence-Based:** Every output provides verifiability and provenance, ensuring AI agents can cite their sources accurately ([parallel.ai](https://parallel.ai/)). +Parallel's Search API is a web search engine designed specifically for AI agents that streamlines the search, scrape, and extraction pipeline into a single API call using declarative semantic search to provide token-efficient results ([parallel.ai](https://parallel.ai/products/search)). --- Parallel call trace (1 calls) --- - {"tool": "_web_search", "latency_s": 1.4036233751103282, "citation_count": 5} + {"tool": "web_search", "latency_s": 2.6487630419433117, "citation_count": 5} diff --git a/scripts/render_screenshot.py b/scripts/render_screenshot.py new file mode 100644 index 0000000..71528d1 --- /dev/null +++ b/scripts/render_screenshot.py @@ -0,0 +1,173 @@ +"""Render docs/screenshot.txt to a brand-styled PNG for the adk-docs PR. + +Reads docs/screenshot.txt, lays it out in FT System Mono on Off-white using +Parallel's brand palette (per assets.parallel.ai/llms.txt style guide), and +writes docs/assets/research_agent.png. + +Fonts and intermediate brand assets are downloaded on demand from +assets.parallel.ai (gitignored). The committed outputs are docs/assets/parallel.png +(the symbol logo) and docs/assets/research_agent.png (the rendered screenshot). + +Run: + .venv/bin/python scripts/render_screenshot.py +""" + +from __future__ import annotations + +import sys +import urllib.request +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFont + +ROOT = Path(__file__).resolve().parent.parent +SRC = ROOT / "docs" / "screenshot.txt" +DST = ROOT / "docs" / "assets" / "research_agent.png" + +# Parallel brand palette (assets.parallel.ai/llms.txt). +OFF_WHITE = "#fcfcfa" +INDEX_BLACK = "#1d1b16" +NEURAL = "#d8d0bf" +SIGNAL = "#fb631b" + +FONT_REGULAR = ROOT / "docs" / "assets" / "FTSystemMono-Regular.ttf" +FONT_BOLD = ROOT / "docs" / "assets" / "FTSystemMono-Bold.ttf" + +FONT_URLS = { + FONT_REGULAR: "https://assets.parallel.ai/FTSystemMono-Regular.ttf", + FONT_BOLD: "https://assets.parallel.ai/FTSystemMono-Bold.ttf", +} + + +def ensure_fonts() -> None: + """Download the brand fonts if they aren't already cached locally. + + assets.parallel.ai's CDN rejects the default urllib User-Agent (403); + pass a browser-style UA so the request goes through. + """ + for path, url in FONT_URLS.items(): + if path.exists(): + continue + path.parent.mkdir(parents=True, exist_ok=True) + print(f"fetching {url}", file=sys.stderr) + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req) as resp, path.open("wb") as fp: + fp.write(resp.read()) + +# Layout. +WIDTH = 1400 +PADDING_X = 70 +PADDING_Y = 60 +FONT_SIZE = 22 +LINE_HEIGHT = int(FONT_SIZE * 1.55) +WRAP_WIDTH = 78 # chars + +# Window-chrome dots (subtle, no labels). +DOT_RADIUS = 7 +DOT_GAP = 22 + + +def wrap(text: str, width: int) -> list[str]: + """Word-wrap a single line of text to a max char width, preserving runs.""" + if len(text) <= width: + return [text] + out: list[str] = [] + line = "" + for word in text.split(" "): + if not line: + line = word + elif len(line) + 1 + len(word) <= width: + line = f"{line} {word}" + else: + out.append(line) + line = word + if line: + out.append(line) + return out + + +def color_for_line(line: str) -> str: + stripped = line.strip() + if stripped.startswith("$ "): + return SIGNAL + if stripped.startswith(">>>"): + return SIGNAL + if stripped.startswith("---"): + return NEURAL + if stripped.startswith("{"): + return NEURAL + return INDEX_BLACK + + +def font_for_line(line: str, regular: ImageFont.FreeTypeFont, bold: ImageFont.FreeTypeFont) -> ImageFont.FreeTypeFont: + s = line.strip() + if s.startswith("$ ") or s.startswith(">>>"): + return bold + return regular + + +def main() -> int: + if not SRC.exists(): + print(f"missing: {SRC}", file=sys.stderr) + return 1 + ensure_fonts() + + raw = SRC.read_text().splitlines() + + # Wrap long lines once for layout. + lines: list[str] = [] + for line in raw: + if not line: + lines.append("") + else: + lines.extend(wrap(line, WRAP_WIDTH)) + + regular = ImageFont.truetype(str(FONT_REGULAR), FONT_SIZE) + bold = ImageFont.truetype(str(FONT_BOLD), FONT_SIZE) + + # Compute height: window-chrome row + padding + text + padding. + chrome_height = PADDING_Y - 10 + text_height = max(LINE_HEIGHT * len(lines), 100) + height = chrome_height + PADDING_Y + text_height + PADDING_Y + + img = Image.new("RGB", (WIDTH, height), OFF_WHITE) + draw = ImageDraw.Draw(img) + + # Window chrome dots. + cy = chrome_height // 2 + 18 + cx = PADDING_X + DOT_RADIUS + for i in range(3): + x = cx + i * DOT_GAP + draw.ellipse( + [(x - DOT_RADIUS, cy - DOT_RADIUS), (x + DOT_RADIUS, cy + DOT_RADIUS)], + outline=NEURAL, + width=2, + ) + + # Hairline separator between chrome and text. + sep_y = chrome_height + PADDING_Y // 2 + draw.line( + [(PADDING_X, sep_y), (WIDTH - PADDING_X, sep_y)], + fill=NEURAL, + width=1, + ) + + # Text. + y = sep_y + PADDING_Y // 2 + for line in lines: + if line == "": + y += LINE_HEIGHT + continue + font = font_for_line(line, regular, bold) + color = color_for_line(line) + draw.text((PADDING_X, y), line, font=font, fill=color) + y += LINE_HEIGHT + + DST.parent.mkdir(parents=True, exist_ok=True) + img.save(DST, optimize=True) + print(f"wrote {DST} ({img.size[0]}x{img.size[1]})") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) From 318bc7dedd0ad9930525b51cdafc44c16076de75 Mon Sep 17 00:00:00 2001 From: Matt Harris Date: Thu, 30 Apr 2026 22:29:19 -0400 Subject: [PATCH 2/4] docs: embed Parallel logo and demo screenshot in README Now that the assets live in docs/assets/, surface them in the top-level README so the repo has visual polish and the assets justify their existence in-tree. --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e529ea..e75299e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ +

+ Parallel +

+ # parallel-google-adk +[![PyPI](https://img.shields.io/pypi/v/parallel-google-adk.svg)](https://pypi.org/project/parallel-google-adk/) +[![Python](https://img.shields.io/pypi/pyversions/parallel-google-adk.svg)](https://pypi.org/project/parallel-google-adk/) +[![License](https://img.shields.io/pypi/l/parallel-google-adk.svg)](LICENSE) + Google [Agent Development Kit](https://adk.dev) (ADK) tools and plugin for [Parallel](https://parallel.ai) — grounded web search, clean extraction, and cited deep research with structured output. ## Install @@ -72,7 +80,9 @@ This package is the typed-FunctionTool path for users who want fine-grained sche ## Examples -See [`examples/research_agent.py`](examples/research_agent.py) for a runnable demo. +See [`examples/research_agent.py`](examples/research_agent.py) for a runnable demo. A run looks like this: + +![Research agent run](docs/assets/research_agent.png) ## Development From cdf740730f858ad7aaf364a480d2a749e04b5815 Mon Sep 17 00:00:00 2001 From: Matt Harris Date: Thu, 30 Apr 2026 22:30:22 -0400 Subject: [PATCH 3/4] docs: use for theme-aware logo rendering The Parallel symbol is dark-on-transparent, which renders fine in light mode but disappears in GitHub's dark mode. Add the white variant and use a element with prefers-color-scheme so the right mark renders in each theme. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e75299e..6e72f87 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@

- Parallel + + + Parallel +

# parallel-google-adk From 43f95cba1a56a0dd8727dc2dd6a665dc8dc1086e Mon Sep 17 00:00:00 2001 From: Matt Harris Date: Thu, 30 Apr 2026 22:31:24 -0400 Subject: [PATCH 4/4] docs: switch to Parallel avatar logo (works in both light/dark) The dark avatar variant carries its own background (dark rounded square with white mark), so it renders correctly in both GitHub light and dark modes without needing a element. Drops the unneeded white symbol PNG. Also leads the install snippet with 'uv add' (with pip as fallback) since most modern Python tooling is now uv-first. --- README.md | 9 +++------ docs/assets/parallel.png | Bin 17528 -> 16613 bytes 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6e72f87..e1f1dff 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,5 @@

- - - Parallel - + Parallel

# parallel-google-adk @@ -16,8 +13,8 @@ Google [Agent Development Kit](https://adk.dev) (ADK) tools and plugin for [Para ## Install ```bash -pip install parallel-google-adk -export PARALLEL_API_KEY=your-key-here # get one at https://platform.parallel.ai +uv add parallel-google-adk # or: pip install parallel-google-adk +export PARALLEL_API_KEY=your-key-here # get one at https://platform.parallel.ai ``` ## Quickstart diff --git a/docs/assets/parallel.png b/docs/assets/parallel.png index dc6fe326725067afa01f64702432886e591646cb..4bb12af2795a47f95a5820a558af712d7ff30297 100644 GIT binary patch literal 16613 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