app
Parts Search
Public Made by Adomby adom
One search box across Mouser, DigiKey and JLCPCB: parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time.
← Commit history
Publish 1.2.0
9 files changed
+129−10
BUILD-SKILL.md+1@@ -46,4 +46,5 @@ description: Build and release a new version of adom-parts-search. Use when the - The dock reads `dockbar.json` from the PAGE REPO, not the registry tarball; publish.sh pushes it, but a manual edit needs `adom-wiki repo push adom/adom-parts-search --files dockbar.json -m "..."`. - The hero is human-gated: `hero-studio pose adom/adom-parts-search --surface pup --headline "Parts Search"`, then `adom-wiki repo push ... --files docs/hero.png` and `adom-wiki page hero adom/adom-parts-search --image docs/hero.png`. - UI changes visible to the user: minor bump.+- Demo narration lives in `src/app/audio/demo-N.mp3`, pre-rendered with `adom-tts say --out` (house voice, server-side pronunciations) and embedded via include_bytes. If the demo copy changes, regenerate the affected clips (the texts are in `src/app/audio/narration.json`) and rebuild; never synthesize at runtime. - Policy changes (e.g. new vendor, different preference rules): minor bump + update the `adom-parts-search` skill to match.
CHANGELOG.md+8@@ -1,5 +1,13 @@ # Changelog +## 1.2.0 (2026-08-24)++Narrated guided demo with a transport floaty++- A play button in the header (and `adom-parts-search demo`) runs an eight-step guided tour: Say it strip, a live search, the vendor columns, the best-source banner, Settings, and the health lights. A draggable floaty carries play/pause, next, previous, and exit (Space, arrows, and Escape work too), a spotlight ring tracks each step, and steps auto-advance when their narration ends.+- The narration is pre-rendered at build time with adom-tts (house voice, Adom pronunciations) and shipped inside the binary as eight mp3 clips served same-origin; nothing is synthesized at runtime.+- The demo's single search rides the normal quota guard; Settings opens non-modally during its step so the transport stays clickable, and exiting puts everything back (strip visibility, dialog, audio).+ ## 1.1.3 (2026-08-23) Fleet-standard scrollbars
README.md+5@@ -109,6 +109,10 @@ error and the recommendation reasons around it. - **A recommendation that flips**: DigiKey wins when Mouser is out of stock or long-lead, and a second policy, cheapest in stock, compares unit prices across every vendor that answered. - **Two faces**: a page for browsing, a JSON CLI for scripting and BOMs.+- **A narrated demo**: the play button in the header runs a two-minute guided tour with a+ draggable play / pause / next / previous / exit floaty; the narration is pre-rendered speech+ shipped inside the binary (nothing is synthesized at runtime). `adom-parts-search demo` starts+ it from the CLI. - **Dock Bar ready**: a version-aware idempotent `serve`, a fast `/api/status` with per-vendor LEDs, webview ownership, and a Say it strip. - **Taskbar progress**: while a search runs, a progress bar sized from measured durations is@@ -139,6 +143,7 @@ error and the recommendation reasons around it. | `adom-parts-search ui click <id>` | Click a control on the page (search, instock, settings, restore, policy ...) | | `adom-parts-search ui search "<q>"` | Run a search through the page | | `adom-parts-search settings get\|set\|restore` | Read or change `~/.adom/parts-search-settings.json` |+| `adom-parts-search demo` | Run the narrated guided demo on the page | | `--limit N` / `--in-stock-only` | Cap hits per vendor / hide zero-stock (defaults come from Settings) | ## Open source: make it yours, then give it back
SKILL.md+12@@ -166,6 +166,18 @@ Every `/api/*` route answers OPTIONS and sends `Access-Control-Allow-Origin: *` For the Dock Bar card (what a click does, `dockbar.json`, the LED, diagnosis) read the companion skill `adom-parts-search-dock`. +### The guided demo++`adom-parts-search demo` (or the play button in the page header, or `ui click demo`) runs a+narrated eight-step tour of the page: welcome, the Say it strip, a live LM555 search, the vendor+columns, the best-source banner, Settings, the health lights, and a wrap. A draggable floaty+carries play/pause, next, previous, and exit (arrow keys, Space, and Escape work too), and a+spotlight ring tracks the element each step is about. The narration is pre-rendered with+`adom-tts` at build time and shipped inside the binary; nothing is synthesized at runtime.+Browsers unlock audio only after a real click, so a demo started by an AI may need the user to+press Play once. The demo's one search goes through the normal quota guard (an identical repeat+within 5 minutes is served from cache).+ ## Pin-1 alignment check: moved to `adom-chipfit` The footprint ↔ 3D-chip validator that used to live here as
bin/adom-parts-searchadded⋯ 1 unchanged line ⋯
package.json+41−2@@ -1,6 +1,6 @@ { "slug": "adom-parts-search",- "version": "1.1.3",+ "version": "1.2.0", "type": "app", "description": "One search box across Mouser, DigiKey and JLCPCB. Parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time. Dock Bar ready: serve, health, settings, Say it.", "dependencies": {@@ -38,5 +38,44 @@ "SKILL.md", "BUILD-SKILL.md", "CHANGELOG.md"+ ],+ "changelog": "Narrated guided demo with a transport floaty",+ "discovery_triggers": [+ "parts search",+ "find part",+ "source component",+ "source part",+ "compare distributors",+ "compare vendors",+ "Mouser or DigiKey",+ "BOM sourcing",+ "price this part",+ "where can I get",+ "check stock",+ "parts availability",+ "fastest delivery",+ "cheapest part",+ "component search",+ "part lookup",+ "price breaks"+ ],+ "discovery_pitch": "Search Mouser, DigiKey and JLCPCB in parallel with product photos; Mouser-preferred best-source pick. Say 'with parts search' to your AI.",+ "sample_prompts": [+ {+ "label": "source an STM32F103RBT6",+ "prompt": "source an STM32F103RBT6"+ },+ {+ "label": "where can I get an ESP32-S3-WROOM cheape",+ "prompt": "where can I get an ESP32-S3-WROOM cheapest and fastest"+ },+ {+ "label": "compare Mouser, DigiKey and JLCPCB for a",+ "prompt": "compare Mouser, DigiKey and JLCPCB for an LM555"+ },+ {+ "label": "price this BOM across distributors",+ "prompt": "price this BOM across distributors"+ } ]-}+}
page.json+49−8@@ -4,7 +4,7 @@ "slug": "adom-parts-search", "title": "Parts Search", "brief": "One search box across Mouser, DigiKey and JLCPCB: parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time.",- "version": "1.1.3",+ "version": "1.2.0", "install": { "binary_name": "adom-parts-search", "install_dir": "",@@ -36,10 +36,22 @@ "path": "screenshots/hero.png" }, "sample_prompts": [- "source an STM32F103RBT6",- "where can I get an ESP32-S3-WROOM cheapest and fastest",- "compare Mouser, DigiKey and JLCPCB for an LM555",- "price this BOM across distributors"+ {+ "label": "source an STM32F103RBT6",+ "prompt": "source an STM32F103RBT6"+ },+ {+ "label": "where can I get an ESP32-S3-WROOM cheape",+ "prompt": "where can I get an ESP32-S3-WROOM cheapest and fastest"+ },+ {+ "label": "compare Mouser, DigiKey and JLCPCB for a",+ "prompt": "compare Mouser, DigiKey and JLCPCB for an LM555"+ },+ {+ "label": "price this BOM across distributors",+ "prompt": "price this BOM across distributors"+ } ], "discovery_triggers": [ "parts search",@@ -54,12 +66,41 @@ "where can I get", "check stock", "parts availability",- "fastest delivery"+ "fastest delivery",+ "cheapest part",+ "component search",+ "part lookup",+ "price breaks" ],- "discovery_pitch": "Search Mouser + DigiKey + JLCPCB in parallel from one interface, with product photos and a Mouser-preferred best-source pick.",+ "discovery_pitch": "Search Mouser, DigiKey and JLCPCB in parallel with product photos; Mouser-preferred best-source pick. Say 'with parts search' to your AI.", "metadata": { "platform": "linux" }, "category": "tools",- "org": "adom"+ "org": "adom",+ "description": "One search box across Mouser, DigiKey and JLCPCB. Parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time. Dock Bar ready: serve, health, settings, Say it.",+ "dependencies": {+ "adom/adom-mouser": "*",+ "adom/adom-digikey": "*",+ "adom/adom-jlcpcb": "*"+ },+ "needs_sudo": false,+ "scripts": {+ "install": "./install.sh",+ "uninstall": "./uninstall.sh"+ },+ "files": [+ "bin/**",+ "skills/**",+ "docs/icon.svg",+ "dockbar.json",+ "install.sh",+ "uninstall.sh",+ "package.json",+ "README.md",+ "SKILL.md",+ "BUILD-SKILL.md",+ "CHANGELOG.md"+ ],+ "changelog": "Narrated guided demo with a transport floaty" }
skills/adom-parts-search-build/SKILL.md+1@@ -46,4 +46,5 @@ description: Build and release a new version of adom-parts-search. Use when the - The dock reads `dockbar.json` from the PAGE REPO, not the registry tarball; publish.sh pushes it, but a manual edit needs `adom-wiki repo push adom/adom-parts-search --files dockbar.json -m "..."`. - The hero is human-gated: `hero-studio pose adom/adom-parts-search --surface pup --headline "Parts Search"`, then `adom-wiki repo push ... --files docs/hero.png` and `adom-wiki page hero adom/adom-parts-search --image docs/hero.png`. - UI changes visible to the user: minor bump.+- Demo narration lives in `src/app/audio/demo-N.mp3`, pre-rendered with `adom-tts say --out` (house voice, server-side pronunciations) and embedded via include_bytes. If the demo copy changes, regenerate the affected clips (the texts are in `src/app/audio/narration.json`) and rebuild; never synthesize at runtime. - Policy changes (e.g. new vendor, different preference rules): minor bump + update the `adom-parts-search` skill to match.
skills/adom-parts-search/SKILL.md+12@@ -166,6 +166,18 @@ Every `/api/*` route answers OPTIONS and sends `Access-Control-Allow-Origin: *` For the Dock Bar card (what a click does, `dockbar.json`, the LED, diagnosis) read the companion skill `adom-parts-search-dock`. +### The guided demo++`adom-parts-search demo` (or the play button in the page header, or `ui click demo`) runs a+narrated eight-step tour of the page: welcome, the Say it strip, a live LM555 search, the vendor+columns, the best-source banner, Settings, the health lights, and a wrap. A draggable floaty+carries play/pause, next, previous, and exit (arrow keys, Space, and Escape work too), and a+spotlight ring tracks the element each step is about. The narration is pre-rendered with+`adom-tts` at build time and shipped inside the binary; nothing is synthesized at runtime.+Browsers unlock audio only after a real click, so a demo started by an AI may need the user to+press Play once. The demo's one search goes through the normal quota guard (an identical repeat+within 5 minutes is served from cache).+ ## Pin-1 alignment check: moved to `adom-chipfit` The footprint ↔ 3D-chip validator that used to live here as