# adom-parts-search

Parallel parts search across **Mouser + DigiKey + JLCPCB**, rendered side-by-side with product photos. Uses the existing vendor CLIs (`adom-mouser`, `adom-digikey`, `adom-jlcpcb`) as primitives and applies the Adom Mouser-preferred routing policy.

![Unified parts search showing STM32F103 across Mouser, DigiKey, and JLCPCB side by side](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-parts-search/parts-search-results.png)

## Why Mouser is preferred

- **40-minute drone delivery** from Mouser's Mansfield, TX fulfillment center to our Fort Worth facility (~15 miles)
- **Near-zero shipping cost** (drone route, Mouser-operated)
- DigiKey is only picked when Mouser is out of stock, lead time is >14 days, or DigiKey is >30% cheaper on volume

## Use

```bash
# CLI (JSON on stdout, unified across all 3 vendors)
adom-parts-search search "iCE40HX4K-TQ144" --limit 5

# Hydrogen webview — 3-column grid with product photos, buy/datasheet links, zoom
adom-parts-search app
```

## Architecture

Client-only, no service container of its own. Coordinates three existing Tier A vendor backends:

```
  any user container
      │
      ▼
  adom-parts-search CLI / app
      │  (3 parallel HTTP POSTs)
      ├──▶ mouser-xr8t4f5d01bt.adom.cloud    (adom-mouser)
      ├──▶ digikey-gjuu8l5t69uh.adom.cloud   (adom-digikey)
      └──▶ jlcpcb-wela51osctvp.adom.cloud    (adom-jlcpcb)
```

Each vendor backend self-heals via its own cron watchdog (every 2 min). This app just aggregates + renders.

## Install

Tier A — `gallia/install.mjs` pulls it from the wiki on every gallia container. Or run the paste-install one-liner on the wiki page.

## Source

[adom-inc/adom-parts-search](https://github.com/adom-inc/adom-parts-search) (private).
