← Commit history

Publish 1.1.0

John Lauer ·53a062f852 ·3mo ago ·parent 5f68cdd
4 files changed +32−17
README.md+23−12
@@ -5,13 +5,13 @@  ## The stack -`adom-chip-fetcher` is the top of a stack — one command pulls a manufacturer-grade part bundle by orchestrating a tier of focused Adom apps. Each box below is a real app (click through to its page):+`adom-chip-fetcher` is the top of a stack, one command pulls a manufacturer-grade part bundle by orchestrating a tier of focused Adom apps. Each box below is a real app (click through to its page):  ![The adom-chip-fetcher stack](chip-fetcher-stack.png)  Download manufacturer-grade chip CAD bundles (STEP + KiCAD symbol + KiCAD footprint + datasheet + design-help PDFs) into a structured library by driving Chrome via [pup](https://github.com/adom-inc/adom-desktop). -The defining rule: **fetch from the manufacturer's own website first** — only fall back to Mouser, DigiKey, or Component Search Engine when the manufacturer doesn't self-host CAD, and only with explicit user approval.+The defining rule: **fetch from the manufacturer's own website first**, only fall back to Mouser, DigiKey, or Component Search Engine when the manufacturer doesn't self-host CAD, and only with explicit user approval.  ## What it does @@ -38,6 +38,17 @@ library/<MPN>/ └── info.json           # provenance trail (mfr-direct vs mouser-fallback) ``` +## Reuse first, then align pin-1++**Reuse before re-fetch.** The sourcing ladder now starts at the **Adom Wiki** (`Source::AdomWiki`): if the part is already published as a component bundle, chip-fetcher pulls that bundle (`.kicad_sym` / `.kicad_mod` / STEP / datasheet) instead of scraping vendors. Free, fast, and Adom-consistent. It only falls through to the manufacturer-first ladder when there's no published match.++**Pin-1 alignment.** From the dashboard you can **Align pin-1** in [chipsmith](https://wiki.adom.inc/adom/adom-chipsmith): line up the 3D chip's pin-1 with the footprint's pin-1 and sign off. chip-fetcher reads the sign-off back, derives the footprint's own pin-1 corner straight from the `.kicad_mod`, shows a **Pin-1 status** on every card (and flags a chip-vs-footprint mismatch), and `gate --strict` requires it.+++![The chip-fetcher dashboard: per-part cards with symbol / footprint / 3D, source carat, and Pin-1 alignment status](dashboard-pin1.png)++*Each card is one part. The Pin-1 badge shows the footprint target (fp NW) until you align + sign off in chipsmith, then it locks to the chip corner (Pin-1 checkmark NW).*+ ## Verified vendors  | Vendor | Path | Notes |@@ -50,21 +61,21 @@ library/<MPN>/ | Espressif | Mouser ECAD-Model fallback | mfr-uploaded to SamacSys | | Lattice | Mouser ECAD-Model fallback | mfr-uploaded to SamacSys | | Renesas | Mouser ECAD-Model fallback | mfr-uploaded to SamacSys |-| JST | `jst-mfg.com` (email-gated) | mfr-direct STEP/IGES **emailed** to you — see below |+| JST | `jst-mfg.com` (email-gated) | mfr-direct STEP/IGES **emailed** to you, see below |  ## Email-delivered CAD (JST)  Some manufacturers **email** the CAD file instead of serving a download. **JST** is the reference case: since April 2025, requesting a STEP/IGES on jst-mfg.com-sends it as an **email attachment**. The full flow — driving your real Chrome+sends it as an **email attachment**. The full flow, driving your real Chrome past Cloudflare, the License Agreement form, retrieving the attachment via [adom-google](https://wiki.adom.inc/adom/adom-google) (Gmail) or a build-your-own fetcher for other providers, and the breadcrumb pattern that-keeps chip-fetcher provider-agnostic — is documented in its own sub-README:+keeps chip-fetcher provider-agnostic, is documented in its own sub-README: -➡️ **[docs/jst-email-gated-cad.md](docs/jst-email-gated-cad.md)** — Email-delivered CAD: the JST flow (and how to add any email-gated manufacturer)+➡️ **[docs/jst-email-gated-cad.md](docs/jst-email-gated-cad.md)**, Email-delivered CAD: the JST flow (and how to add any email-gated manufacturer) -🏆 **[docs/jst-showcase.md](docs/jst-showcase.md)** — Showcase (with screenshots): how chip-fetcher cracked JST's Cloudflare + email gate end-to-end, and bundled the 5 most-common JST connectors with symbol + footprint + 3D.+🏆 **[docs/jst-showcase.md](docs/jst-showcase.md)**, Showcase (with screenshots): how chip-fetcher cracked JST's Cloudflare + email gate end-to-end, and bundled the 5 most-common JST connectors with symbol + footprint + 3D.  > ⚖️ **Note on JST files:** JST's download License Agreement (clause 2) prohibits redistributing their CAD to third parties, so we do **not** rehost JST's emailed STEP/IGES or datasheets. Connector component pages we publish use the **redistributable KiCad libraries** for symbol/footprint/3D and **link to JST** for any JST-authored model. @@ -73,9 +84,9 @@ Agents: the same content lives in the skill as `playbooks/jst.md` +  ### Demo (60s, narrated) -[![JST email-gated CAD demo — watch](demo/jst-demo-hero.png)](demo/jst-email-gated-cad-demo.webm)+[![JST email-gated CAD demo, watch](demo/jst-demo-hero.png)](demo/jst-email-gated-cad-demo.webm) -▶ **[Watch the 60-second demo](demo/jst-email-gated-cad-demo.webm)** — proven end-to-end on **PHR-2**: JST's global catalog → the License Agreement form → the "data has been sent to your email address" confirmation → `adom-google` pulls the emailed `PHR-2.STEP` → the chip-fetcher library card with its auto-rendered 3D model.+▶ **[Watch the 60-second demo](demo/jst-email-gated-cad-demo.webm)**, proven end-to-end on **PHR-2**: JST's global catalog → the License Agreement form → the "data has been sent to your email address" confirmation → `adom-google` pulls the emailed `PHR-2.STEP` → the chip-fetcher library card with its auto-rendered 3D model.  Reproducible recipe (scenes, narration, TTS config): **[demo/jst-email-gated-cad-demo-script.md](demo/jst-email-gated-cad-demo-script.md)**. @@ -92,11 +103,11 @@ curl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/chip-fetcher/chip-fe  Two adom-desktop fix-it specs live in [scripts/](scripts/): -- `adom-desktop-pullfile-speed-prompt.md` — streaming binary WS frames + HTTP fallback so 50+ MB files (NXP reference manuals) don't time out-- `adom-desktop-credential-vault-prompt.md` — DPAPI/Keychain-encrypted credential vault hooked into `puppeteer.page.authenticate()` so basic-auth popups never appear+- `adom-desktop-pullfile-speed-prompt.md`, streaming binary WS frames + HTTP fallback so 50+ MB files (NXP reference manuals) don't time out+- `adom-desktop-credential-vault-prompt.md`, DPAPI/Keychain-encrypted credential vault hooked into `puppeteer.page.authenticate()` so basic-auth popups never appear  Paste either into Claude Code on the desktop to implement.  ## License -**MIT** — © 2026 Adom Industries Inc. Open source; see [LICENSE](LICENSE). Modify, fork, and redistribute freely.+**MIT**, © 2026 Adom Industries Inc. Open source; see [LICENSE](LICENSE). Modify, fork, and redistribute freely.
SKILL.md+4
@@ -156,6 +156,10 @@ Each playbook is a focused deep-dive. Read the relevant one when the situation m | [`playbooks/handoff-and-watching.md`](playbooks/handoff-and-watching.md) | You've decided you can't automate something (captcha, OAuth, OS prompt). Covers when handoff is allowed (escape valve, not routine), the ALWAYS-watch rule, signals to watch for per handoff trigger, the show-product-page-and-teach-me pattern when stuck on a vendor, and EDA-agnostic UI terminology. | | [`playbooks/jst.md`](playbooks/jst.md) | **Any JST connector** (PHR-/XHP-/ZHR-/SHR-/EHR-/VHR-/PAP-/GHR-/NHR- housings, B\*B-/S\*B-/BM\*B-/SM\*B- headers). The canonical **email-gated CAD** manufacturer: jst.com (USA) Cloudflare-walls pup → use the native browser; CAD lives on jst-mfg.com keyed by **series id**; the download link returns a **License Agreement form** (accept cookies first) whose submit **emails** the `.zip` (since Apr 2025); doc=1 IGES / doc=2 STEP / doc=3 3D-PDF / doc=4 2D-PDF (per-series, read the header); **no account login**; datasheet = direct series catalog PDF; JST gives 3D+drawings only, sym/mod still come from the ladder. | | [`playbooks/jst-email-retrieval.md`](playbooks/jst-email-retrieval.md) | A manufacturer **emails** the CAD (JST, and others coming). The account-specific retrieval layer: **Gmail users** → `adom-google` (`gmail attachments` / `gmail read`, plus-alias + filter for batches); **non-Gmail users** → build a small IMAP/Graph attachment-fetcher, publish it on the wiki, and drop a chip-fetcher breadcrumb so it auto-surfaces. Keeps chip-fetcher provider-agnostic. |+| [`playbooks/wiki-bundle-reuse.md`](playbooks/wiki-bundle-reuse.md) | **Ladder step 0 — reuse a published Adom Wiki bundle before re-fetching.** The wiki-as-part-source pattern (`Source::AdomWiki`, `src/sources/wiki.rs`): the read-only API (slug / discover / search), and every hard-won gotcha — FTS throws on hyphens, discover/search return LOOSE matches so you MUST verify `component.mpn` **or** slug, malformed `component.mpn`, pull canonical files only (skip `-v2`/`-compare` variants), files live in git not releases, metadata-only stubs → fall through. |+| [`playbooks/symbol-axis-regen.md`](playbooks/symbol-axis-regen.md) | chip-fetcher's side of the default symbol's 3D outline: **axis-aware regen** on up-axis switch (`POST /api/orientation` → light `chip-thumbnailer rerender --kind outline` → recomposite via adom-symbol) + the **non-blocking SYM-tile spinner** (data-driven on `sym_rev`, `pointer-events:none`). The symbol-DEFAULT behavior (compositing the white outline + lasered name, why natively white, the outline contract) lives in **adom-symbol** → `adom-symbol/docs/default-symbol-3d-outline.md`. |++> **adom-lbr BOM flags:** when chip-fetcher builds a `.lbr` it auto-passes `--mfr/--mpn/--mouser/…` from `stock.json` (`src/bom.rs`, wired in `deliver.rs` + `serve.rs`). The BOM *contract* itself (flags → `MF`/`MPN`/`MOUSER` device attributes, the `⛔ INCOMPLETE BOM` reprimand) lives in the **adom-lbr** skill, not here.  ## Adom standard passive size — proactively recommend 0402 
package.json+2−2
@@ -1,6 +1,6 @@ {   "slug": "adom-chip-fetcher",-  "version": "1.0.3",+  "version": "1.1.0",   "type": "app",   "description": "Your whole parts library \u2014 manufacturer-grade chip CAD (symbol, footprint, 3D) one tap from your EDA tool.",   "dependencies": {@@ -36,7 +36,7 @@   "needs_sudo": false,   "hero": {     "type": "image",-    "path": "adom-chip-fetcher.png"+    "path": "adom-chip-fetcher-hero-v5.png"   },   "files": [     "bin/adom-chip-fetcher",
page.json+3−3
@@ -1,8 +1,8 @@ {   "slug": "adom-chip-fetcher",-  "version": "1.0.3",+  "version": "1.1.0",   "type": "app",-  "description": "Your whole parts library \u2014 manufacturer-grade chip CAD (symbol, footprint, 3D) one tap from your EDA tool.",+  "description": "Your whole parts library — manufacturer-grade chip CAD (symbol, footprint, 3D) one tap from your EDA tool.",   "dependencies": {     "adom/adom-sfconvert": "*",     "adom/adom-symbol": "*",@@ -33,7 +33,7 @@   "needs_sudo": false,   "hero": {     "type": "image",-    "path": "adom-chip-fetcher-hero-v4.png"+    "path": "adom-chip-fetcher-hero-v5.png"   },   "visibility": "public",   "title": "Adom Chip Fetcher",