Iकस्टडी मॉडल

कुछ नहीं जाता।
कोई कॉल घर नहीं जाती।

SQAI वहीं चलता है जहाँ आपका डेटा रहता है। क्वेरी के समय कोई नेटवर्क कॉल नहीं होती जिसे इंटरसेप्ट किया जा सके, कोई सेवा आपकी पंक्तियाँ नहीं रखती, कोई टेलीमेट्री नहीं। यह शीट हर उस बाइट का हिसाब देती है जो कभी तार पार करती है — ठीक दो मूवमेंट हैं, और दोनों में आपका डेटा नहीं है।

कस्टडी शीटSQAI · लोकल मोड
contract_hash sha256:79f1c5a6c716…be9a1जारी: आपकी प्रक्रिया को
  • आपकी पंक्तियाँ

    आपकी प्रक्रिया के भीतर पढ़ी जाती हैं। कभी कॉपी नहीं, कभी अपलोड नहीं, आपके अलावा किसी के पास नहीं।

    कभी नहीं
  • प्लान और परिणाम

    इन-प्रोसेस सत्यापित और निष्पादित। परिणाम एक सीमित लोकल स्टोर में रहते हैं और 15 मिनट बाद समाप्त हो जाते हैं।

    कभी नहीं
  • टेलीमेट्री

    कोई नहीं। न एनालिटिक्स कॉल, न क्रैश रिपोर्टर, न कोई घर जिसे फ़ोन किया जाए।

    कभी नहीं
  • रनटाइम बंडल

    इंजन कोड, Cloudflare R2 से एक बार फ़ेच किया गया और एक भी फ़ाइल लिखे जाने से पहले सत्यापित। कोड आता है; पंक्तियाँ कभी नहीं जातीं।

    एक बार · इनबाउंड · साइन्ड
  • डिवाइस साइन-इन

    वैकल्पिक। आपकी मशीन और अकाउंट सेवा के बीच एक साइन्ड लाइसेंस टोकन भेजता है — आपका डेटा कभी नहीं।

    वैकल्पिक · केवल टोकन

क्वेरी के समय कोई नेटवर्क नहीं। इंस्टॉल के बाद तार काटें — हर क्वेरी फिर भी जवाब देती है।

रीड-ओनली कोई सेटिंग नहीं है।
यह टूल का स्वरूप है।

4,574 उजागर क्षमताएँ · हर एक रीड · कोई राइट पाथ नहीं जिसे गलत कॉन्फ़िगर किया जाए

IIIएकमात्र डाउनलोड

फ़ाइल आने से पहले छह जाँचें।

Runtime bundle ही एकमात्र चीज़ है जो SQAI कभी फ़ेच करता है — Cloudflare R2 से इंजन कोड, जिसे सिद्ध होने तक संदिग्ध माना जाता है। सत्यापन एक्सट्रैक्शन से पहले शुरू होता है, फ़ाइल-दर-फ़ाइल जारी रहता है, और इंस्टॉल परमाणु है।

  1. 01

    एक स्वीकृत key

    रिलीज़ एक RSA-4096 रिलीज़ कुंजी से RS256 के साथ हस्ताक्षरित होती हैं। एक कुंजी सत्यापित करती है; कुछ और विश्वसनीय नहीं है।

  2. 02

    निकालने से पहले सत्यापन

    किसी भी फ़ाइल को अनपैक करने से पहले मैनिफ़ेस्ट पर हस्ताक्षर की जाँच की जाती है। छेड़छाड़ किया या अहस्ताक्षरित बंडल इतनी दूर तक पहुँचता ही नहीं।

  3. 03

    स्कीमा और पथ सुरक्षा

    मैनिफ़ेस्ट को अपेक्षित स्कीमा में पार्स होना चाहिए, और हर सूचीबद्ध पथ इंस्टॉल रूट के भीतर रिज़ॉल्व होना चाहिए।

  4. 04

    प्रति-आर्टिफ़ैक्ट sha256

    हर फ़ाइल को हैश किया जाता है और हस्ताक्षरित मैनिफ़ेस्ट से मिलाया जाता है। एक भी बाइट का अंतर पूरे इंस्टॉल को विफल कर देता है।

  5. 05

    असूचीबद्ध या सिमलिंक — अस्वीकृत

    जो फ़ाइल मैनिफ़ेस्ट में सूचीबद्ध नहीं है, या कोई भी सिमलिंक, बंडल को तत्काल अस्वीकार कर देती है।

  6. 06

    परमाणु इंस्टॉल, फ़्लोर्ड रोलबैक

    एक्सट्रैक्शन एक अस्थायी डायरेक्टरी में होती है और एक परमाणु रीनेम से अपनी जगह पर आती है। स्वीकृत फ़्लोर से नीचे के संस्करण rollback_protected के रूप में अस्वीकृत किए जाते हैं।

निरीक्षणाधीन आर्टिफ़ैक्टruntime_bundle 0.1.0sha256 4d64142e4c1ff63d299cfc8b172fdf97cb59169b545e1e02978e678a632ce6e1MIN_ACCEPTED_RUNTIME_VERSION 0.1.0 · below → rollback_protected

IVकुंजियाँ और त्रुटि स्वच्छता

छोटी सतहें, छोटी रखी गई।

डिवाइस कुंजी

स्थान
~/.sqai — आपकी होम डायरेक्टरी में, सिस्टम-व्यापी कहीं नहीं
अनुमतियाँ
फ़ाइल मोड 600 — केवल आप ही पढ़ सकते हैं
जारी करना
वैकल्पिक डिवाइस साइन-इन (RFC 8628 डिवाइस कोड)
क्या स्थानांतरित होता है
एक हस्ताक्षरित लाइसेंस टोकन — आपका डेटा कभी नहीं

मॉडल क्या देखता है

आपकी प्रक्रिया में फेंका गयाENOENT: no such file or directory — /Users/dana/finance/q3-actuals.csv
मॉडल को दिया गयाENOENT: no such file or directory

sanitizeMessage हर मॉडल-दृश्य त्रुटि से निरपेक्ष पथ हटा देता है। आपका फ़ाइलसिस्टम लेआउट कभी भी मॉडल के संदर्भ का हिस्सा नहीं होता।

Vपरिणाम स्टोर

एक हैंडल जो कुछ सिद्ध नहीं करता।

बड़े परिणाम मॉडल के संदर्भ को भरने की बजाय एक हैंडल के पीछे रहते हैं। हैंडल को इस तरह बनाया गया है कि जारीकर्ता टेनेंट के अलावा किसी के लिए भी यह निरर्थक हो।

result_id
16 यादृच्छिक बाइट, base64url — अनुमान-अयोग्य, किसी क्वेरी या टेनेंट से असंबद्ध
प्राधिकरण
टेनेंट-स्कोप्ड — केवल जारीकर्ता टेनेंट ही इसे रिडीम कर सकता है
गलत टेनेंट
result_not_found — उस हैंडल से अप्रभेद्य जो कभी अस्तित्व में ही नहीं था
आयु सीमा
15-मिनट TTL · ≤256 परिणाम · 64 MB कुल · 16 MB प्रति टेनेंट

result_id = base64url(randomBytes(16))

जारीकर्ता टेनेंट→ ok
कोई अन्य टेनेंट→ result_not_found

निषिद्ध नहीं — अनुपलब्ध। अस्तित्व कभी उजागर नहीं होता।

VIएयर-गैप रनबुक

जहाँ तार कटा हो, वहाँ चलता है।

क्वेरी प्लेन डिज़ाइन से ऑफ़लाइन है; केवल कंप्यूट रनटाइम ही कभी फ़ेच किया जाता है। पूरी तरह डिस्कनेक्टेड चलाने के लिए, बंडल स्वयं प्राप्त करें — सत्यापनकर्ता को इससे कोई फ़र्क नहीं पड़ता कि बाइट्स कहाँ से आए।

  1. 01

    ऑटो-इंस्टॉल बंद करें

    SQAI रनटाइम को कभी भी परोक्ष रूप से फ़ेच नहीं करेगा।

    $export SQAI_RUNTIME_AUTO_INSTALL=0
  2. 02

    बंडल को पार ले जाएँ

    हस्ताक्षरित बंडल को एक कनेक्टेड मशीन पर फ़ेच करें और अपनी ट्रांसफ़र नीति के अनुसार स्थानांतरित करें।

  3. 03

    फ़ाइल से इंस्टॉल करें

    सभी छह जाँचें स्थानीय फ़ाइल पर चलती हैं — वही हस्ताक्षर, वही मैनिफ़ेस्ट, वही प्रति-आर्टिफ़ैक्ट हैश।

    $sqai runtime install --from-file <bundle>
  4. 04

    यथास्थान सत्यापन

    इंस्टॉल किए गए रनटाइम को एकल स्वीकृत रिलीज़ कुंजी के विरुद्ध कभी भी पुनः जाँचें।

    $sqai runtime verify

इंस्टॉल के बाद: शून्य नेटवर्क। क्वेरी, नीति जाँच और प्रोवेनेंस हैश स्थानीय रूप से संगणित होते हैं।

VIIसमीक्षा प्रश्न

हर सुरक्षा समीक्षा में पूछे जाते हैं।

मेरी मशीन से वास्तव में क्या बाहर जाता है?

क्वेरी के समय, कुछ नहीं। एक इंस्टॉल के जीवनकाल में, दो चीज़ें नेटवर्क पार करती हैं: Cloudflare R2 से एक इनबाउंड हस्ताक्षरित रनटाइम बंडल (इंजन कोड, डेटा पंक्तियाँ नहीं), और — केवल यदि आप डिवाइस साइन-इन चुनते हैं — एक हस्ताक्षरित लाइसेंस टोकन। कोई टेलीमेट्री नहीं है।

क्या read-only महज एक flag है जिसे कोई पलट सके?

नहीं। डेटाबेस कनेक्शन पर read-only flag एक वादा है; SQAI एक अनुपस्थित सतह है। सभी 4,574 उजागर क्षमताएँ reads हैं — कोई write, DDL, या eval पथ ही नहीं है जिसकी रक्षा करनी पड़े — और escape hatch (getUnsafeRuntime) किसी model की पहुँच से सदा बाहर है।

क्या model अपनी पहुँच स्वयं बढ़ा सकता है?

नहीं। Policy, createSQAI() के समय कोड में स्थिर होती है और execution से पहले in-process जाँची जाती है। model जो tool input भरता है उसमें कोई allowed* field नहीं होती, और allow-list से बाहर किसी capability का नाम लेने पर unsupported_operation फेंका जाता है।

क्या SQAI air-gapped चल सकता है?

हाँ। SQAI_RUNTIME_AUTO_INSTALL=0 सेट करें, signed bundle स्वयं स्थानांतरित करें, और sqai runtime install --from-file से इंस्टॉल करें। वही verification chain फ़ाइल पर चलती है, और query plane पूरी तरह offline रहता है।

क्या कोई error message model को मेरे file paths बता सकता है?

नहीं। sanitizeMessage हर model-visible error से absolute paths हटा देता है, इसलिए model को आपके filesystem का layout कभी पता नहीं चलता।

अगला कदम

अपना security review लेकर आएँ।

हमारे साथ प्रश्नावली पर चलें — custody, signing, policy, air-gap — हर उत्तर कोड तक traceable।