Cursor Automations हमेशा-सक्रिय एजेंट्स के ज़रिए दोहराए जाने वाले कार्यों को स्वचालित करके आपका समय बचाता है। इस रिलीज़ में /automate कौशल, GitHub और Slack के लिए नए ट्रिगर्स, और computer use के लिए समर्थन जोड़ा गया है।
किसी भी Slack संदेश पर तय किए गए इमोजी से प्रतिक्रिया दें, और एक स्वचालन शुरू करें। Cursor में, हम इसका इस्तेमाल Slack से सीधे विशिष्ट स्वचालन ट्रिगर करने के लिए करते हैं।
Cursor अब 10 मिनट से भी कम समय में क्लाउड में आपका डेवलपमेंट परिवेश सेट अप करने में मदद कर सकता है। आप साझा टर्मिनल सत्र में एजेंट की प्रगति देख सकते हैं, जबकि वह निर्भरताएँ इंस्टॉल करने जैसे सेटअप कार्य संभालता है।
आपका परिवेश एक दोबारा इस्तेमाल किए जा सकने वाले स्नैपशॉट में कैप्चर हो जाता है, जिससे भविष्य के क्लाउड एजेंट आपका सॉफ़्टवेयर चलाकर परिवर्तनों का परीक्षण करने की क्षमता के साथ तेज़ी से शुरू होते हैं। यह लंबे समय तक लगातार दोहराव कर सकता है, जब तक कि आउटपुट सत्यापित न हो जाएँ। .cursor/environment.json में कमिट किए जाने पर इसका लाभ आपकी पूरी टीम को मिलता है।
आपके द्वारा सबमिट किए गए अगले कार्य पर काम करने के लिए, उसके अपने VM में क्लाउड उप-एजेंट शुरू करने हेतु /in-cloud का उपयोग करें। यह अपने अलग VM और ब्रांच पर चलता है, इसलिए आपका स्थानीय कार्यस्थान साफ़ और उत्तरदायी बना रहता है।
यह खास तौर पर लंबे समय तक चलने वाले या समानांतर कार्यों को अलग रखने के लिए उपयोगी है, जैसे CI को ठीक करना, किसी समस्या की जाँच करना, या कोडबेस को एक्सप्लोर करना—जबकि आप स्थानीय रूप से काम जारी रखते हैं।
आप क्विक-एक्शन पिल पर क्लिक करके या /babysit का उपयोग करके किसी क्लाउड उप-एजेंट से PR पर नज़र रखने के लिए भी कह सकते हैं। क्लाउड एजेंट आपके स्थानीय सत्र को व्यस्त किए बिना, आपके PR को मर्ज के लिए तैयार करने हेतु रिमोटली बार-बार काम करेगा।
क्लाउड उप-एजेंट, पैरेंट एजेंट को बाधित किए बिना, पृष्ठभूमि में चल सकता है; पैरेंट एजेंट स्थानीय रूप से या क्लाउड में चलता रह सकता है।
अपने लोकल कंप्यूटर और क्लाउड के बीच एजेंट सत्रों को अधिक भरोसेमंद तरीके से स्थानांतरित करें। आप लंबे समय तक चलने वाले काम को अपनी मशीन से क्लाउड पर ऑफ़लोड कर सकते हैं और जितने चाहें उतने क्लाउड एजेंट समानांतर में चला सकते हैं। परिवर्तनों का खुद परीक्षण करने के लिए किसी क्लाउड एजेंट को वापस लोकल पर ले आएँ।
Bugbot के लिए औसत समीक्षा समय अब ~90 सेकंड है, जो ~5 मिनट से घटकर आया है। Bugbot अब औसतन प्रति समीक्षा 10% ज़्यादा बग्स भी ढूँढता है — 0.56 से बढ़कर 0.62 — और प्रति रन इसकी लागत ~22% कम है।
प्रदर्शन में ये सुधार Composer 2.5 के प्रशिक्षण में हमारी प्रगति की वजह से संभव हुए हैं, जो अब Bugbot को संचालित करता है। Bugbot मॉडल ब्लॉक सूचियों का पालन करता है, और गति व प्रदर्शन आपकी कॉन्फ़िगरेशन के अनुसार अलग-अलग हो सकते हैं।
अब आप कोड पुश करने से पहले /review के साथ Bugbot और सुरक्षा समीक्षा चला सकते हैं। /review आपको यह चुनने देता है कि कौन से एजेंट चलाने हैं, या आप /review-bugbot और /review-security सीधे चला सकते हैं।
/review GitHub और GitLab पर Bugbot के साथ भी सिंक होता है। अगर आप /review चलाते हैं और फिर उसी डिफ के साथ एक PR खोलते हैं, तो Bugbot उसे पहचान लेता है, समीक्षा छोड़ देता है, और एक टिप्पणी करके बताता है कि वह उस डिफ की पहले ही समीक्षा कर चुका है।
Cursor 3.7+ और cursor.com/agents पर उपलब्ध, CLI में समर्थन जल्द आ रहा है।
अब आप Bugbot को इस तरह कॉन्फ़िगर कर सकते हैं कि वह पिछली समीक्षा के बाद हुए बदलावों की ही समीक्षा करे, जिससे फ़ीडबैक आपके नवीनतम अपडेट पर केंद्रित रहे।
Cursor ब्राउज़र में Design Mode के साथ, आप अपने UI को अपडेट करने में एजेंट की मदद के लिए क्लिक कर सकते हैं, ड्रॉ कर सकते हैं या आवाज़ से बदलावों का वर्णन कर सकते हैं।
Design Mode ओवरले के ज़रिए परिवर्तनों के बारे में बताएं। एजेंट के चल रहे होने पर भी माइक उपलब्ध रहता है, इसलिए आप पिछले परिवर्तन के पूरा होने का इंतज़ार किए बिना वॉइस से अगले परिवर्तन को कतार में डाल सकते हैं।
हमने TypeScript और Python SDKs में कई नई सुविधाएँ जारी की हैं। अब आप चुन सकते हैं कि एजेंट और रन मेटाडेटा कैसे सहेजा जाए, अपने फ़ंक्शंस को उपकरण के रूप में एजेंट के लिए उपलब्ध करा सकते हैं, स्थानीय टूल कॉल्स को ऑटो-रिव्यू के माध्यम से रूट कर सकते हैं, और उप-एजेंट को किसी भी गहराई तक नेस्ट कर सकते हैं। यह रिलीज़ विश्वसनीयता, प्रदर्शन और प्लेटफ़ॉर्म सुधारों का एक सेट भी लाती है, जो स्थानीय और क्लाउड SDK एजेंट्स को उत्पादन स्क्रिप्ट्स, CI और कस्टम इंटीग्रेशन में चलाना आसान बनाते हैं।
अब आप local.customTools के ज़रिए, Agent.create() पर या हर send() के लिए फ़ंक्शन परिभाषाएँ पास करके लोकल एजेंट को अपने उपकरण दे सकते हैं। SDK उन्हें custom-user-tools नाम के बिल्ट-इन MCP सर्वर के ज़रिए एजेंट को उपलब्ध कराता है, ताकि मॉडल आपके कोड को किसी भी दूसरे MCP टूल की तरह उसी पाथ और उसी अनुमति जाँच के ज़रिए कॉल करे।
पहले, किसी कस्टम क्षमता को उपलब्ध कराने के लिए आपको अपना stdio या रिमोट HTTP MCP सर्वर सेट अप करके उसे एजेंट से जोड़ना पड़ता था। अब सिर्फ़ एक फ़ंक्शन परिभाषा काफ़ी है। कस्टम उपकरण किसी पैरेंट एजेंट के हर उप-एजेंट को भी दिखाई देते हैं, इसलिए जो टूल आप एक बार परिभाषित करते हैं, वह पूरे रन में उपलब्ध रहता है।
डिफ़ॉल्ट रूप से, एक लोकल SDK एजेंट स्वीकृति माँगे बिना टूल कॉल्स चलाता है, क्योंकि हेडलेस रन में लूप में कोई मानव नहीं होता। इसके बजाय, उन कॉल्स को ऑटो-रिव्यू के माध्यम से भेजने के लिए local.autoReview सेट करें। समीक्षा को पूरी तरह बायपास करने के बजाय, एक क्लासिफ़ायर तय करता है कि कौन-सी कॉल स्वचालित रूप से चलेंगी और किन्हें रोककर रखा जाएगा।
आप permissions.json में प्राकृतिक भाषा के निर्देशों के ज़रिए उस क्लासिफ़ायर को नियंत्रित करते हैं। autoRun.allow_instructions फ़ील्ड उन कॉल पैटर्न का वर्णन करती है जिन्हें अनुमति देने की ओर प्राथमिकता दी जानी चाहिए, और autoRun.block_instructions उन कॉलों का वर्णन करती है जिन्हें समीक्षा के लिए रोके रखना चाहिए। उदाहरण के लिए, आप बिल्ड आर्टिफैक्ट्स की केवल-पढ़ने योग्य जाँचों की अनुमति दे सकते हैं, जबकि delete जैसी विनाशकारी कार्रवाइयों पर हमेशा रोक लगा सकते हैं।
{ "autoRun": { "allow_instructions": [ "Read-only inspections of build artifacts under ./dist are fine." ], "block_instructions": [ "Always pause delete operations so I get a chance to review them." ] }}
दोनों SDK एजेंट और रन मेटाडेटा को स्थायी रूप से सहेजते हैं, ताकि प्रक्रिया के पुनः आरंभ होने के बाद आप किसी एजेंट को फिर से शुरू कर सकें। अब तक यह स्टोर SQLite था। अब आप इसके बजाय JSONL स्टोर चुन सकते हैं, जो एक साधारण, append-only फ़ाइल लिखता है जिसे आप पढ़ सकते हैं, डिफ कर सकते हैं, और संस्करण नियंत्रण में चेक-इन कर सकते हैं। SqliteLocalAgentStore और JsonlLocalAgentStore दोनों सीधे एक्सपोर्ट किए जाते हैं।
अगर इनमें से कोई भी डिफ़ॉल्ट आपके सेटअप के अनुरूप नहीं है, तो सार्वजनिक LocalAgentStore इंटरफ़ेस को इम्प्लीमेंट करें और उसे local.store के ज़रिए पास करें। अस्थायी CI रन के लिए एक in-memory स्टोर बनाएँ, या जब आप चाहते हों कि एजेंट की स्थिति आपके बाकी ऐप्लिकेशन डेटा के साथ रहे, तब persistence के लिए Postgres का उपयोग करें। Python SDK ब्रिज के ज़रिए host, JSONL, और composed JSONL स्टोर्स उपलब्ध कराता है।
उप-एजेंट अब अपने स्वयं के उप-एजेंट भी स्पॉन कर सकते हैं, और यह क्रम आगे भी चलता रहता है। एक समीक्षक उप-एजेंट किसी परीक्षण-लेखक को काम सौंप सकता है, और वह आगे किसी अन्य को सौंप सकता है, जिसमें हर स्तर अपना प्रॉम्प्ट और मॉडल बनाए रखता है। इसे चालू करने के लिए कुछ भी नहीं है; एक उप-एजेंट सत्र उस निष्पादक को पंजीकृत करता है जिसकी उसे Task को कॉल करने के लिए आवश्यकता होती है, इसलिए नेस्टिंग किसी भी ऐसे एजेंट के लिए स्वचालित रूप से काम करती है जो उप-एजेंट परिभाषित करता है।
इस रिलीज़ में दोनों SDKs के लिए उपयोगिता से जुड़े कई सुधार भी शामिल हैं।
रन सहसंबंध: हर send() के साथ अब प्लेटफ़ॉर्म द्वारा जनरेट किया गया requestId आता है, जो Run और RunResult पर उपलब्ध होता है और in-memory, SQLite, और JSONL स्टोर्स में स्थायी रूप से सहेजा जाता है। अब आप किसी स्क्रिप्ट या CI रन को agentId से अनुमान लगाए बिना backend logs, analytics, और support threads से जोड़ सकते हैं।
लोकल runs पर विश्वसनीय wait(): अब लोकल runs में wait() टर्मिनल परिणाम लिखे जाने से पहले resolve नहीं होता। Hydration रन के अंतिम स्थिति में पहुँचने तक refresh होती रहती है, ताकि स्वचालन को पूरा परिणाम मिल सके।
dispose पर सुरक्षित checkpoints: अब किसी लोकल एजेंट को dispose करने पर checkpoint data नहीं हटता, भले ही root reference गायब हो लेकिन checkpoint blobs अभी भी मौजूद हों। एजेंट डायरेक्टरी केवल तभी साफ़ की जाती है, जब सचमुच बचाकर रखने के लिए कुछ न हो।
HTTP/1.1 पर क्लाउड स्ट्रीमिंग: क्लाउड एजेंट सत्र अब कुछ proxies, पुराने Node fetch stacks, और कुछ CI images में इस्तेमाल होने वाले HTTP/1.1 transports पर सही तरीके से stream होते हैं। HTTP/2 का व्यवहार अपरिवर्तित है।
हल्का import: @cursor/sdk को import करने पर अब पूरा लोकल एजेंट स्टैक eager तरीके से load नहीं होता। केवल-क्लाउड और केवल-type consumers पहली लोकल call तक लोकल runtime की लागत से बच जाते हैं, और API में कोई बदलाव नहीं होता। पहली लोकल call पर एक बार import cost लगती है, उसके बाद यह cache में बना रहता है।
स्व-समाहित TypeScript types: प्रकाशित .d.ts files अब unpublished कार्यस्थान packages को reference नहीं करतीं। इससे skipLibCheck: false के तहत आने वाली TS2305 और TS2307 errors, और TurnEndedUpdate जैसे stream types पर चुपचाप any हो जाने की समस्या ठीक होती है।
Bundled ripgrep: लोकल shell runs अब आपके global PATH को बदले बिना bundled platform rg binary का उपयोग करते हैं। Windows पर ripgrep को prepend करने से अब Path variable overwrite नहीं होता।
Composer 2 को Composer 2.5 पर route किया जाता है: जो SDK clients अभी भी retired composer-2 slugs को pin किए हुए हैं, उन्हें स्वचालित रूप से Composer 2.5 पर route कर दिया जाता है। इससे fast variants वैसे ही बने रहते हैं, इसलिए पुरानी scripts चलती रहती हैं।
कार्यस्थान-स्कोप्ड list_runs: Client, AsyncClient, और Agent.list_runs अब एक वैकल्पिक cwd लेते हैं, और bridge fallback के रूप में अपने launch कार्यस्थान का उपयोग करता है। इससे bridge के subprocess के रूप में चलने पर आने वाले अनावश्यक "agent not found" results ठीक होते हैं।
ज़्यादा स्पष्ट not-found errors: ऐसे एजेंट को lookup करने पर जो resolved कार्यस्थान में मौजूद नहीं है, अब अस्पष्ट internal error के बजाय साफ़ not-found error मिलता है।
0.1.6 release और analytics: cursor-sdk 0.1.6 में Buildkite release path का दस्तावेज़ीकरण किया गया है, और अधिक स्पष्ट analytics के लिए SDK usage को sdk-python- के रूप में label किया गया है।
अपग्रेड करने के लिए npm install @cursor/sdk या pip install cursor-sdk चलाएँ। composer-2 को pin करने वाली scripts अपने-आप Composer 2.5 पर चली जाती हैं, और requestId आपके रन metadata schema में सुरक्षित रूप से जोड़ा जा सकता है। पूरी जानकारी के लिए TypeScript और Python दस्तावेज़ देखें।
Cursor Automations हमेशा-सक्रिय एजेंट्स के ज़रिए दोहराए जाने वाले कार्यों को स्वचालित करके आपका समय बचाता है। इस रिलीज़ में /automate कौशल, GitHub और Slack के लिए नए ट्रिगर्स, और computer use के लिए समर्थन जोड़ा गया है।
किसी भी Slack संदेश पर तय किए गए इमोजी से प्रतिक्रिया दें, और एक स्वचालन शुरू करें। Cursor में, हम इसका इस्तेमाल Slack से सीधे विशिष्ट स्वचालन ट्रिगर करने के लिए करते हैं।
Cursor अब 10 मिनट से भी कम समय में क्लाउड में आपका डेवलपमेंट परिवेश सेट अप करने में मदद कर सकता है। आप साझा टर्मिनल सत्र में एजेंट की प्रगति देख सकते हैं, जबकि वह निर्भरताएँ इंस्टॉल करने जैसे सेटअप कार्य संभालता है।
आपका परिवेश एक दोबारा इस्तेमाल किए जा सकने वाले स्नैपशॉट में कैप्चर हो जाता है, जिससे भविष्य के क्लाउड एजेंट आपका सॉफ़्टवेयर चलाकर परिवर्तनों का परीक्षण करने की क्षमता के साथ तेज़ी से शुरू होते हैं। यह लंबे समय तक लगातार दोहराव कर सकता है, जब तक कि आउटपुट सत्यापित न हो जाएँ। .cursor/environment.json में कमिट किए जाने पर इसका लाभ आपकी पूरी टीम को मिलता है।
आपके द्वारा सबमिट किए गए अगले कार्य पर काम करने के लिए, उसके अपने VM में क्लाउड उप-एजेंट शुरू करने हेतु /in-cloud का उपयोग करें। यह अपने अलग VM और ब्रांच पर चलता है, इसलिए आपका स्थानीय कार्यस्थान साफ़ और उत्तरदायी बना रहता है।
यह खास तौर पर लंबे समय तक चलने वाले या समानांतर कार्यों को अलग रखने के लिए उपयोगी है, जैसे CI को ठीक करना, किसी समस्या की जाँच करना, या कोडबेस को एक्सप्लोर करना—जबकि आप स्थानीय रूप से काम जारी रखते हैं।
आप क्विक-एक्शन पिल पर क्लिक करके या /babysit का उपयोग करके किसी क्लाउड उप-एजेंट से PR पर नज़र रखने के लिए भी कह सकते हैं। क्लाउड एजेंट आपके स्थानीय सत्र को व्यस्त किए बिना, आपके PR को मर्ज के लिए तैयार करने हेतु रिमोटली बार-बार काम करेगा।
क्लाउड उप-एजेंट, पैरेंट एजेंट को बाधित किए बिना, पृष्ठभूमि में चल सकता है; पैरेंट एजेंट स्थानीय रूप से या क्लाउड में चलता रह सकता है।
अपने लोकल कंप्यूटर और क्लाउड के बीच एजेंट सत्रों को अधिक भरोसेमंद तरीके से स्थानांतरित करें। आप लंबे समय तक चलने वाले काम को अपनी मशीन से क्लाउड पर ऑफ़लोड कर सकते हैं और जितने चाहें उतने क्लाउड एजेंट समानांतर में चला सकते हैं। परिवर्तनों का खुद परीक्षण करने के लिए किसी क्लाउड एजेंट को वापस लोकल पर ले आएँ।
Bugbot के लिए औसत समीक्षा समय अब ~90 सेकंड है, जो ~5 मिनट से घटकर आया है। Bugbot अब औसतन प्रति समीक्षा 10% ज़्यादा बग्स भी ढूँढता है — 0.56 से बढ़कर 0.62 — और प्रति रन इसकी लागत ~22% कम है।
प्रदर्शन में ये सुधार Composer 2.5 के प्रशिक्षण में हमारी प्रगति की वजह से संभव हुए हैं, जो अब Bugbot को संचालित करता है। Bugbot मॉडल ब्लॉक सूचियों का पालन करता है, और गति व प्रदर्शन आपकी कॉन्फ़िगरेशन के अनुसार अलग-अलग हो सकते हैं।
अब आप कोड पुश करने से पहले /review के साथ Bugbot और सुरक्षा समीक्षा चला सकते हैं। /review आपको यह चुनने देता है कि कौन से एजेंट चलाने हैं, या आप /review-bugbot और /review-security सीधे चला सकते हैं।
/review GitHub और GitLab पर Bugbot के साथ भी सिंक होता है। अगर आप /review चलाते हैं और फिर उसी डिफ के साथ एक PR खोलते हैं, तो Bugbot उसे पहचान लेता है, समीक्षा छोड़ देता है, और एक टिप्पणी करके बताता है कि वह उस डिफ की पहले ही समीक्षा कर चुका है।
Cursor 3.7+ और cursor.com/agents पर उपलब्ध, CLI में समर्थन जल्द आ रहा है।
अब आप Bugbot को इस तरह कॉन्फ़िगर कर सकते हैं कि वह पिछली समीक्षा के बाद हुए बदलावों की ही समीक्षा करे, जिससे फ़ीडबैक आपके नवीनतम अपडेट पर केंद्रित रहे।
Cursor ब्राउज़र में Design Mode के साथ, आप अपने UI को अपडेट करने में एजेंट की मदद के लिए क्लिक कर सकते हैं, ड्रॉ कर सकते हैं या आवाज़ से बदलावों का वर्णन कर सकते हैं।
Design Mode ओवरले के ज़रिए परिवर्तनों के बारे में बताएं। एजेंट के चल रहे होने पर भी माइक उपलब्ध रहता है, इसलिए आप पिछले परिवर्तन के पूरा होने का इंतज़ार किए बिना वॉइस से अगले परिवर्तन को कतार में डाल सकते हैं।
हमने TypeScript और Python SDKs में कई नई सुविधाएँ जारी की हैं। अब आप चुन सकते हैं कि एजेंट और रन मेटाडेटा कैसे सहेजा जाए, अपने फ़ंक्शंस को उपकरण के रूप में एजेंट के लिए उपलब्ध करा सकते हैं, स्थानीय टूल कॉल्स को ऑटो-रिव्यू के माध्यम से रूट कर सकते हैं, और उप-एजेंट को किसी भी गहराई तक नेस्ट कर सकते हैं। यह रिलीज़ विश्वसनीयता, प्रदर्शन और प्लेटफ़ॉर्म सुधारों का एक सेट भी लाती है, जो स्थानीय और क्लाउड SDK एजेंट्स को उत्पादन स्क्रिप्ट्स, CI और कस्टम इंटीग्रेशन में चलाना आसान बनाते हैं।
अब आप local.customTools के ज़रिए, Agent.create() पर या हर send() के लिए फ़ंक्शन परिभाषाएँ पास करके लोकल एजेंट को अपने उपकरण दे सकते हैं। SDK उन्हें custom-user-tools नाम के बिल्ट-इन MCP सर्वर के ज़रिए एजेंट को उपलब्ध कराता है, ताकि मॉडल आपके कोड को किसी भी दूसरे MCP टूल की तरह उसी पाथ और उसी अनुमति जाँच के ज़रिए कॉल करे।
पहले, किसी कस्टम क्षमता को उपलब्ध कराने के लिए आपको अपना stdio या रिमोट HTTP MCP सर्वर सेट अप करके उसे एजेंट से जोड़ना पड़ता था। अब सिर्फ़ एक फ़ंक्शन परिभाषा काफ़ी है। कस्टम उपकरण किसी पैरेंट एजेंट के हर उप-एजेंट को भी दिखाई देते हैं, इसलिए जो टूल आप एक बार परिभाषित करते हैं, वह पूरे रन में उपलब्ध रहता है।
डिफ़ॉल्ट रूप से, एक लोकल SDK एजेंट स्वीकृति माँगे बिना टूल कॉल्स चलाता है, क्योंकि हेडलेस रन में लूप में कोई मानव नहीं होता। इसके बजाय, उन कॉल्स को ऑटो-रिव्यू के माध्यम से भेजने के लिए local.autoReview सेट करें। समीक्षा को पूरी तरह बायपास करने के बजाय, एक क्लासिफ़ायर तय करता है कि कौन-सी कॉल स्वचालित रूप से चलेंगी और किन्हें रोककर रखा जाएगा।
आप permissions.json में प्राकृतिक भाषा के निर्देशों के ज़रिए उस क्लासिफ़ायर को नियंत्रित करते हैं। autoRun.allow_instructions फ़ील्ड उन कॉल पैटर्न का वर्णन करती है जिन्हें अनुमति देने की ओर प्राथमिकता दी जानी चाहिए, और autoRun.block_instructions उन कॉलों का वर्णन करती है जिन्हें समीक्षा के लिए रोके रखना चाहिए। उदाहरण के लिए, आप बिल्ड आर्टिफैक्ट्स की केवल-पढ़ने योग्य जाँचों की अनुमति दे सकते हैं, जबकि delete जैसी विनाशकारी कार्रवाइयों पर हमेशा रोक लगा सकते हैं।
{ "autoRun": { "allow_instructions": [ "Read-only inspections of build artifacts under ./dist are fine." ], "block_instructions": [ "Always pause delete operations so I get a chance to review them." ] }}
दोनों SDK एजेंट और रन मेटाडेटा को स्थायी रूप से सहेजते हैं, ताकि प्रक्रिया के पुनः आरंभ होने के बाद आप किसी एजेंट को फिर से शुरू कर सकें। अब तक यह स्टोर SQLite था। अब आप इसके बजाय JSONL स्टोर चुन सकते हैं, जो एक साधारण, append-only फ़ाइल लिखता है जिसे आप पढ़ सकते हैं, डिफ कर सकते हैं, और संस्करण नियंत्रण में चेक-इन कर सकते हैं। SqliteLocalAgentStore और JsonlLocalAgentStore दोनों सीधे एक्सपोर्ट किए जाते हैं।
अगर इनमें से कोई भी डिफ़ॉल्ट आपके सेटअप के अनुरूप नहीं है, तो सार्वजनिक LocalAgentStore इंटरफ़ेस को इम्प्लीमेंट करें और उसे local.store के ज़रिए पास करें। अस्थायी CI रन के लिए एक in-memory स्टोर बनाएँ, या जब आप चाहते हों कि एजेंट की स्थिति आपके बाकी ऐप्लिकेशन डेटा के साथ रहे, तब persistence के लिए Postgres का उपयोग करें। Python SDK ब्रिज के ज़रिए host, JSONL, और composed JSONL स्टोर्स उपलब्ध कराता है।
उप-एजेंट अब अपने स्वयं के उप-एजेंट भी स्पॉन कर सकते हैं, और यह क्रम आगे भी चलता रहता है। एक समीक्षक उप-एजेंट किसी परीक्षण-लेखक को काम सौंप सकता है, और वह आगे किसी अन्य को सौंप सकता है, जिसमें हर स्तर अपना प्रॉम्प्ट और मॉडल बनाए रखता है। इसे चालू करने के लिए कुछ भी नहीं है; एक उप-एजेंट सत्र उस निष्पादक को पंजीकृत करता है जिसकी उसे Task को कॉल करने के लिए आवश्यकता होती है, इसलिए नेस्टिंग किसी भी ऐसे एजेंट के लिए स्वचालित रूप से काम करती है जो उप-एजेंट परिभाषित करता है।
इस रिलीज़ में दोनों SDKs के लिए उपयोगिता से जुड़े कई सुधार भी शामिल हैं।
रन सहसंबंध: हर send() के साथ अब प्लेटफ़ॉर्म द्वारा जनरेट किया गया requestId आता है, जो Run और RunResult पर उपलब्ध होता है और in-memory, SQLite, और JSONL स्टोर्स में स्थायी रूप से सहेजा जाता है। अब आप किसी स्क्रिप्ट या CI रन को agentId से अनुमान लगाए बिना backend logs, analytics, और support threads से जोड़ सकते हैं।
लोकल runs पर विश्वसनीय wait(): अब लोकल runs में wait() टर्मिनल परिणाम लिखे जाने से पहले resolve नहीं होता। Hydration रन के अंतिम स्थिति में पहुँचने तक refresh होती रहती है, ताकि स्वचालन को पूरा परिणाम मिल सके।
dispose पर सुरक्षित checkpoints: अब किसी लोकल एजेंट को dispose करने पर checkpoint data नहीं हटता, भले ही root reference गायब हो लेकिन checkpoint blobs अभी भी मौजूद हों। एजेंट डायरेक्टरी केवल तभी साफ़ की जाती है, जब सचमुच बचाकर रखने के लिए कुछ न हो।
HTTP/1.1 पर क्लाउड स्ट्रीमिंग: क्लाउड एजेंट सत्र अब कुछ proxies, पुराने Node fetch stacks, और कुछ CI images में इस्तेमाल होने वाले HTTP/1.1 transports पर सही तरीके से stream होते हैं। HTTP/2 का व्यवहार अपरिवर्तित है।
हल्का import: @cursor/sdk को import करने पर अब पूरा लोकल एजेंट स्टैक eager तरीके से load नहीं होता। केवल-क्लाउड और केवल-type consumers पहली लोकल call तक लोकल runtime की लागत से बच जाते हैं, और API में कोई बदलाव नहीं होता। पहली लोकल call पर एक बार import cost लगती है, उसके बाद यह cache में बना रहता है।
स्व-समाहित TypeScript types: प्रकाशित .d.ts files अब unpublished कार्यस्थान packages को reference नहीं करतीं। इससे skipLibCheck: false के तहत आने वाली TS2305 और TS2307 errors, और TurnEndedUpdate जैसे stream types पर चुपचाप any हो जाने की समस्या ठीक होती है।
Bundled ripgrep: लोकल shell runs अब आपके global PATH को बदले बिना bundled platform rg binary का उपयोग करते हैं। Windows पर ripgrep को prepend करने से अब Path variable overwrite नहीं होता।
Composer 2 को Composer 2.5 पर route किया जाता है: जो SDK clients अभी भी retired composer-2 slugs को pin किए हुए हैं, उन्हें स्वचालित रूप से Composer 2.5 पर route कर दिया जाता है। इससे fast variants वैसे ही बने रहते हैं, इसलिए पुरानी scripts चलती रहती हैं।
कार्यस्थान-स्कोप्ड list_runs: Client, AsyncClient, और Agent.list_runs अब एक वैकल्पिक cwd लेते हैं, और bridge fallback के रूप में अपने launch कार्यस्थान का उपयोग करता है। इससे bridge के subprocess के रूप में चलने पर आने वाले अनावश्यक "agent not found" results ठीक होते हैं।
ज़्यादा स्पष्ट not-found errors: ऐसे एजेंट को lookup करने पर जो resolved कार्यस्थान में मौजूद नहीं है, अब अस्पष्ट internal error के बजाय साफ़ not-found error मिलता है।
0.1.6 release और analytics: cursor-sdk 0.1.6 में Buildkite release path का दस्तावेज़ीकरण किया गया है, और अधिक स्पष्ट analytics के लिए SDK usage को sdk-python- के रूप में label किया गया है।
अपग्रेड करने के लिए npm install @cursor/sdk या pip install cursor-sdk चलाएँ। composer-2 को pin करने वाली scripts अपने-आप Composer 2.5 पर चली जाती हैं, और requestId आपके रन metadata schema में सुरक्षित रूप से जोड़ा जा सकता है। पूरी जानकारी के लिए TypeScript और Python दस्तावेज़ देखें।