इस प्रोजेक्ट के बारे में

attini एक कमांड-लाइन कोडिंग एजेंट है जिसे आपके वर्कस्पेस में स्वायत्त रूप से काम करने के लिए डिज़ाइन किया गया है, साथ ही मानव नियंत्रण बनाए रखता है। यह स्ट्रीमिंग समर्थन के साथ HTTP/1.1 + TLS पर सीधे DeepSeek Chat Completions API के साथ इंटरैक्ट करता है। एजेंट फ़ाइलों को सूचीबद्ध और पढ़ सकता है, कोडबेस खोज सकता है, पैच लागू कर सकता है और कमांड चला सकता है। Git-ट्रैक की गई फ़ाइलों में प्रतिवर्ती परिवर्तन बिना संकेत दिए लागू किए जाते हैं, जबकि महत्वपूर्ण क्रियाएं—जैसे नई फ़ाइलें बनाना, अनट्रैक की गई फ़ाइलों को संशोधित करना, या गैर-अनुमत कमांड चलाना—पूर्वावलोकन के रूप में दिखाई जाती हैं और स्पष्ट अनुमोदन की आवश्यकता होती है। यह प्रोजेक्ट Sans I/O डिज़ाइन पर बनाया गया है: कोर पार्सर, डेटा प्रकार और स्टेट मशीनें कोई I/O नहीं करती हैं, जबकि एसिंक ट्रांसपोर्ट, TUI और फ़ाइलसिस्टम एकीकरण आसपास के मॉड्यूल में रहते हैं। यह पृथक्करण परीक्षण क्षमता और रखरखाव को बढ़ाता है। मुख्य विशेषताएं शामिल हैं: - **रीड-ओनली टूल्स**: वर्कस्पेस का पता लगाने के लिए `list`, `read`, `search`। - **पैच टूल**: जोड़/अपडेट संपादन लागू करता है; ट्रैक की गई फ़ाइलों में प्रतिवर्ती परिवर्तन स्वतः लागू करता है, लेकिन नई फ़ाइलों, गैर-ट्रैक परिवर्तनों या वर्कस्पेस के बाहर लिखने के लिए अनुमोदन की आवश्यकता होती है। - **कमांड टूल**: कॉन्फ़िगर करने योग्य टाइमआउट के साथ, अनुमति नियंत्रण के तहत शेल कमांड चलाता है। - **अनुमोदन प्रणाली**: रुके हुए सत्रों को फिर से शुरू करने, लंबित टूल कॉल को अनुमोदित करने और वैकल्पिक रूप से `--grant` के माध्यम से स्थायी अनुमतियां देने के लिए `attini approve` का उपयोग करता है। - **अनुमतियां**: वर्कस्पेस और सत्र-स्तरीय नियमों के लिए सादा JSONL फ़ाइलें (`permissions.jsonl`), हाथ से संपादन योग्य। - **सत्र प्रबंधन**: सत्र `.attini/<NAME>/` के अंतर्गत निर्देशिकाओं के रूप में संग्रहीत होते हैं, जिनमें अपेंड-ओनली JSONL वार्तालाप लॉग, स्क्रैचपैड और लॉक फ़ाइलें होती हैं। `attini status` और `attini ask` के साथ निरीक्षण करें। - **पर्यावरण चर**: API कुंजी, बेस URL, सत्र नाम, मॉडल, तापमान, टाइमआउट और अधिक कॉन्फ़िगर करें। डिज़ाइन दर्शन स्वायत्तता पर नियंत्रणीयता और समझने योग्यता पर जोर देता है। संदर्भ केवल तभी जोड़ा जाता है जब स्पष्ट रूप से अनुरोध किया जाता है (प्रॉम्प्ट या `--stdin` के माध्यम से), कोई निहित कौशल या निर्देश-फ़ाइल खोज नहीं, और कोई सबएजेंट या प्लान मोड नहीं। एजेंसी अनुमान लगाने के बजाय जोखिम भरे कार्यों से इनकार करती है। जानबूझकर असमर्थित सुविधाओं में मेमोरी दृढ़ता, सबएजेंट प्रतिनिधिमंडल, `AGENTS.md` स्कैनिंग, स्वचालित कौशल लोडिंग, प्लान मोड और मौजूदा क्षमताओं की नकल करने वाले सुविधा उपकरण शामिल हैं। यह एजेंट को स्पष्ट और सुरक्षित रखने के लिए एक जानबूझकर नीति है। आवश्यकताएं: Rust 1.93+, `DEEPSEEK_API_KEY` पर्यावरण चर, OpenAI-संगत एंडपॉइंट के लिए वैकल्पिक `DEEPSEEK_BASE_URL`।