← Commit history

Publish 1.0.9

John Lauer ·7977202e5d ·16d ago ·parent d3141ec
6 files changed +52−2
README.md+6
@@ -38,6 +38,12 @@ On a JLCPCB assembly run, **Basic** parts are pre-loaded on the line (no fee); * add a per-part feeder charge. Every card shows the tier, LCSC code, stock and price, so you design around what's actually cheap to place. +Search Basic parts only with `adom-jlcpcb search "0402 10k" --basic` (or `--basic` on+`adom-parts-search`, where it narrows the JLCPCB column). The Basic set is refreshed nightly from+JLCPCB itself, so its flags and stock are current; everything else carries `stock_as_of`, because+the wider catalogue is re-crawled over months. For one part, `adom-jlcpcb part C25744` reads JLCPCB+live and tells you when our snapshot disagrees.+ ![adom-jlcpcb results for an 0402 10k resistor and an LM358 op-amp, flagged as Basic parts with LCSC codes and assembly pricing](/blob/app/adom-jlcpcb/screenshots/results-passives.png)  ### Catch the Extended part before fab does
SKILL.md+22
@@ -59,6 +59,8 @@ Search by keyword, MPN, or JLCPCB PN. |---|---|---| | `--limit N` | 10 | Max results (1–50) | | `--in-stock-only` | false | Only parts currently in stock |+| `--basic` | false | Only JLCPCB **Basic** parts (no per-type extended fee at assembly) |+| `--preferred` | false | Only Preferred Extended parts | | `--api URL` / `$JLCPCB_API` | auto | Backend URL. If unset, the CLI tries a local backend on `http://127.0.0.1:8774`, then Adom's hosted backend. It never calls the vendor directly and never needs a vendor key |  Examples:@@ -67,17 +69,37 @@ adom-jlcpcb search "STM32F103RBT6" --limit 5 adom-jlcpcb search "USB-C connector" --in-stock-only adom-jlcpcb search "LDO 3.3V 500mA SOT-23" adom-jlcpcb search "ESP32 WiFi Bluetooth" | jq '.components[].mpn'+adom-jlcpcb search "0402 10k resistor" --basic      # only parts with no feeder fee ``` +**How fresh is this?** Every part carries `stock_as_of` and `stock_age_days`,+and every response carries a `snapshot` block with the build time. The catalogue+comes from a public crawl that re-reads JLCPCB over months, so a part's stock can+be a day old or a hundred days old and only the part itself can say which. The+**Basic** set (~351 parts) is refreshed nightly from JLCPCB directly, so its+flags and stock are current. For any single part, `adom-jlcpcb part` reads+JLCPCB live.+ ### `adom-jlcpcb part <part-number>`  Full detail lookup for a specific part. Accepts JLCPCB PN (`C8734`) or MPN (`STM32F103RBT6`). Returns a single-component result with full price-break table and attributes. +**This one reads JLCPCB live** (their public parts endpoint: no key, no quota),+so it answers "is this Basic, and what is the stock right now" rather than what+the snapshot last saw. It prints the live reading, says when the snapshot+disagrees, and falls back to the snapshot if JLCPCB cannot be reached. Use it+before committing a part to a board. `--offline` answers from the snapshot alone.+ ```bash adom-jlcpcb part C8734 adom-jlcpcb part STM32F103RBT6 | jq '.components[0].price_tiers'+adom-jlcpcb part C25744 --offline          # snapshot only, no network ``` +`components[0].source` says which answer you got: `live from JLCPCB` or+`snapshot`. `differs` lists what the two disagree about, e.g.+`stock: snapshot 1,256,270 (as of 2026-06-23), JLCPCB 21,529,252 now`.+ ### `adom-jlcpcb app`  Open the search UI in a Hydrogen webview tab.
bin/adom-jlcpcb
⋯ 1 unchanged line ⋯
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-jlcpcb",-  "version": "1.0.8",+  "version": "1.0.9",   "type": "app",   "description": "Check the JLCPCB / LCSC parts library before you fab \u2014 Basic vs Extended tier, LCSC stock and assembly pricing, so you avoid surprise feeder-setup fees. CLI, a Hydrogen app, and a shared backend.",   "dependencies": {},
page.json+1−1
@@ -4,7 +4,7 @@   "slug": "adom-jlcpcb",   "title": "JLCPCB Parts Library",   "brief": "Check the JLCPCB / LCSC parts library before you fab — Basic vs Extended tier, LCSC stock and assembly pricing, so you avoid surprise feeder-setup fees. CLI, a Hydrogen app, and a shared backend.",-  "version": "1.0.8",+  "version": "1.0.9",   "install": {     "binary_name": "adom-jlcpcb",     "install_dir": "",
skills/adom-jlcpcb/SKILL.md+22
@@ -59,6 +59,8 @@ Search by keyword, MPN, or JLCPCB PN. |---|---|---| | `--limit N` | 10 | Max results (1–50) | | `--in-stock-only` | false | Only parts currently in stock |+| `--basic` | false | Only JLCPCB **Basic** parts (no per-type extended fee at assembly) |+| `--preferred` | false | Only Preferred Extended parts | | `--api URL` / `$JLCPCB_API` | auto | Backend URL. If unset, the CLI tries a local backend on `http://127.0.0.1:8774`, then Adom's hosted backend. It never calls the vendor directly and never needs a vendor key |  Examples:@@ -67,17 +69,37 @@ adom-jlcpcb search "STM32F103RBT6" --limit 5 adom-jlcpcb search "USB-C connector" --in-stock-only adom-jlcpcb search "LDO 3.3V 500mA SOT-23" adom-jlcpcb search "ESP32 WiFi Bluetooth" | jq '.components[].mpn'+adom-jlcpcb search "0402 10k resistor" --basic      # only parts with no feeder fee ``` +**How fresh is this?** Every part carries `stock_as_of` and `stock_age_days`,+and every response carries a `snapshot` block with the build time. The catalogue+comes from a public crawl that re-reads JLCPCB over months, so a part's stock can+be a day old or a hundred days old and only the part itself can say which. The+**Basic** set (~351 parts) is refreshed nightly from JLCPCB directly, so its+flags and stock are current. For any single part, `adom-jlcpcb part` reads+JLCPCB live.+ ### `adom-jlcpcb part <part-number>`  Full detail lookup for a specific part. Accepts JLCPCB PN (`C8734`) or MPN (`STM32F103RBT6`). Returns a single-component result with full price-break table and attributes. +**This one reads JLCPCB live** (their public parts endpoint: no key, no quota),+so it answers "is this Basic, and what is the stock right now" rather than what+the snapshot last saw. It prints the live reading, says when the snapshot+disagrees, and falls back to the snapshot if JLCPCB cannot be reached. Use it+before committing a part to a board. `--offline` answers from the snapshot alone.+ ```bash adom-jlcpcb part C8734 adom-jlcpcb part STM32F103RBT6 | jq '.components[0].price_tiers'+adom-jlcpcb part C25744 --offline          # snapshot only, no network ``` +`components[0].source` says which answer you got: `live from JLCPCB` or+`snapshot`. `differs` lists what the two disagree about, e.g.+`stock: snapshot 1,256,270 (as of 2026-06-23), JLCPCB 21,529,252 now`.+ ### `adom-jlcpcb app`  Open the search UI in a Hydrogen webview tab.