agentee

Elementy

Biblioteka części

agentee library: własne części użytkownika z ich symbolami, footprintami, modelami, kartami katalogowymi i stanem magazynowym, wyszukiwane, dodawane i używane w każdym projekcie.

Biblioteka części to własny zestaw części użytkownika: złącza, regulatory, elementy pasywne i wszystko inne, co chce ponownie wykorzystać w każdym projekcie, dzięki czemu kable i zapasy przenoszą się między projektami. Każda część zawiera swój symbol, footprint, model 3D, datasheet i ostatnio sprawdzone zapasy, a agent wybiera z niej, zanim sięgnie po coś nowego (MCP library_find, library_list, library_show, library_use, library_add). Praca z każdą częścią potrzebną w projekcie to: znajdź, dodaj, użyj: find pokazuje części z biblioteki, które pasują, a gdy żadna nie pasuje, aktualne części dostępne u dystrybutorów; wybrana część trafia do biblioteki przez add i na płytkę przez use.

Znajduje się w ~/.config/agentee/library/ ($AGENTEE_LIBRARY zmienia lokalizację), a projekt może dodawać lub nadpisywać części w .agentee/library/ w swoim katalogu głównym. Każda część to katalog:

JST-PH-2/
  part.toml
  JST-PH-2.sym.toml            # the symbol, renamed to the part
  JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.fp.toml
  3dmodels/JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.step
role = "connector"
mpn = "S2B-PH-K-S"
manufacturer = "JST"
lcsc = "C131337"               # the JLCPCB/LCSC part number, looked up by `add` and `refresh`
value = "PH 2-pin"
rating = "2 A, 100 V"
preferred = true               # the first choice for its role
# generic = true               # any value on this footprint is this part (a resistor series)
# pins = 2                     # default the symbol's pin count
tags = ["power", "battery"]
notes = "power input, 2 A max, use XH for motors"
symbol = "JST-PH-2.sym.toml"
footprint = "JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.fp.toml"
model = "3dmodels/JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.step"
added = "2026-10-09"

[datasheet]                    # pinned in the datasheet cache
url = "http://www.farnell.com/datasheets/4648554.pdf"
sha256 = "dd60971f..."

[[files]]                      # where each file came from and its hash when added
path = "JST-PH-2.sym.toml"
source = "kicad Connector_Generic:Conn_01x02, KiCad 9.0"
sha256 = "42b88f96..."

[[stock]]                      # one per distributor listing, from add or refresh
distributor = "Farnell"
sku = "9491902"
stock = 338281
currency = "EUR"
breaks = [[100.0, 0.0841], [1000.0, 0.0655]]
min = 100
url = "https://ie.farnell.com/search?st=9491902"
checked = "2026-10-09"
agentee library add S2B-PH-K-S --name JST-PH-2 --role connector \
    --symbol Connector_Generic:Conn_01x02 \
    --footprint Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal \
    --manufacturer JST --rating "2 A, 100 V" --notes "power input" --preferred
agentee library find 3.3V buck --role regulator   # library matches, else stocked parts to add
agentee library find USB-C receptacle --need 100 --search
agentee library list                           # every part, by role, with stock and price
agentee library list --role connector 2-pin power
agentee library show JST-PH-2
agentee library use JST-PH-2 -p board/         # copy its files in, print the edit that places it
agentee library refresh                        # stock and price of every part, one lookup each
agentee library verify

Polecenie find WORDS wypisuje części biblioteczne, których nazwa, rola, tagi, numer części, wartość, parametry, footprint lub uwagi zawierają każde z podanych słów. Tylko gdy żadna część nie pasuje (lub z opcją --search) wykonuje wyszukiwanie słów kluczowych u każdego dystrybutora z kluczem i wypisuje części aktywne (bez statusu wycofana, koniec życia lub niedostępna), które mają na stanie co najmniej --need sztuk (domyślnie 1). Wyniki są łączone po numerze części: łączny stan, dystrybutorzy, którzy je mają, najlepsza cena jednostkowa dla tej ilości oraz link do datasheetu. Części dostępne u większej liczby dystrybutorów są wypisywane pierwsze, a następnie sortowane po stanie; opcja --limit ogranicza liczbę pozycji na liście (domyślnie 15). Jeśli wypisana część jest już w bibliotece, tak się informuje.

add pobiera symbol i footprint z pliku .sym.toml lub .fp.toml, symbolu lub footprintu projektu (-p) lub z KiCad Library:Name; footprint domyślnie pochodzi od symbolu. Kopiuje model 3D footprintu (z katalogów modeli KiCad, z cache modeli lub z pobrania), wskazuje footprint na kopię i ustawia jego height z modelu, jeśli go nie ma, dzięki czemu część działa offline i nadal działa, gdy zmieni się instalacja KiCad lub pobranie od dostawcy. Gdy KiCad nie ma modelu o tej nazwie, bierze najbliższe ciało w tym samym folderze .3dshapes, ten sam obudowę z najbliższym odsłoniętym padem (lub zwykłe ciało footprintu _ThermalVias) i informuje o tym; widok 3D i models robią to samo. --model przyjmuje też pobranie od dostawcy, ZIP lub folder z .kicad_mod i modelem STEP lub VRML (SamacSys, SnapMagic i Ultra Librarian dostarczają takie): dopasowuje pady footprintu dostawcy do naszych po numerze, odmawia, gdy są dalej niż 0,1 mm, i zapisuje model_offset i model_rotate, które umieszczają model dostawcy na naszym footprint. Bez modelu z KiCad lub --model, add wyszukuje numer części w liście części JLCPCB/LCSC i bierze model EasyEDA, umieszczony w ten sam sposób przez pady footprintu EasyEDA po sprawdzeniu modelu względem obrysu tego footprint; files części zapisuje to jako EasyEDA C258169 (easyeda.com). add i refresh przechowują numer LCSC jako lcsc, a use przekazuje go jako pole lcsc części, które czyta bom-jlcpcb.csv. --no-distributors pomija oba wyszukiwania. Pobiera datasheet (URL lub PDF z --datasheet, inaczej URL symbolu, inaczej dystrybutorów), przypina go w cache datasheetów, aby datasheet purge go nie usuwało, i zapisuje zapasy i progi cenowe każdego wpisu. Notatki mówią, gdy żaden dystrybutor nie ma części w zapasie jako aktywnej. --local dodaje do biblioteki projektu.

use kopiuje symbol do symbols/, footprint do footprints/ i model do 3dmodels/ projektu; plik, który już istnieje i się różni, jest odrzucany bez --force. Zwraca polecenie agentee edit sch, które dodaje część z polami mpn, mfr i library. datasheet text JST-PH-2 czyta przypinaną kopię bez wywołania sieciowego.

refresh pyta każdego dystrybutora z kluczem raz o wszystkie numery części z biblioteki i zastępuje [[stock]] każdej części; dystrybutor, który zawiedzie, zachowuje swój ostatni wpis. list wypisuje najtańszy dostępny wpis z datą sprawdzenia, dzięki czemu zapasy i cena są znane bez wywołania API, na tę datę.

verify sprawdza każdą część: każdy pin symbolu ma pad, przypinany datasheet podaje numer części i obudowę (lub liczbę pinów), nazwy pinów symbolu pojawiają się w nim, obrys modelu mieści się w courtyard, otwory, szczeliny i pierścienie footprintu spełniają minima JLCPCB, a każdy plik nadal ma hash, z którym został dodany. Zwraca 1, gdy coś nie przejdzie.

check ostrzega (reguła library), gdy projekt używa części spoza biblioteki do roli, którą biblioteka posiada, podając nazwę części z biblioteki do użycia: tej z tą samą liczbą pinów, preferowanej pierwszej. Rola części to jej pole role, albo wynika z jej oznaczenia: J/P złącze (rf connector dla koaksjalnego, SMA i U.FL, usb connector, modular connector, card socket), R rezystor, C kondensator, L cewka, FB ferryt, D dioda lub led, Q tranzystor, Y kwarc, F bezpiecznik, SW przełącznik, BT bateria, K przekaźnik. Część jest w bibliotece, gdy jej pole mpn lub library podaje nazwę części z biblioteki, albo leży na footprint części generic. Ustaw pole library = "no" części, aby ją wykluczyć. library.toml w katalogu głównym biblioteki ustawia, jak mocno to egzekwuje:

check = "warning"              # warning | info | off
# roles = ["connector"]        # only these roles

docs/format.md · Markdown dla agentów