منصوبے کے بارے میں

Bento ایک اوپن سورس آفس سوٹ ہے جس کا بنیادی تصور یہ ہے کہ دستاویز ہی سافٹ ویئر ہے: ایک پریزنٹیشن ایک واحد خود مکتفی HTML فائل ہوتی ہے جو اپنا ویوئر، پریزنٹر اور ایڈیٹر خود ساتھ رکھتی ہے۔ اسے کسی بھی جدید براؤزر میں کھولیں تو یہ ایڈیٹر ہے؛ محفوظ کریں تو یہ اپنا ڈیٹا بلاک خود دوبارہ لکھ دیتی ہے۔ پہلی ایپ، Bento Slides، پاورپوائنٹ کا متبادل ہے جو ایک تقریباً 560 KB فائل (Bento_Slides.bento.html) کے طور پر تقسیم کی جاتی ہے، جس کے لیے نہ اکاؤنٹ درکار ہے نہ انسٹالر۔ README میں بیان کردہ اہم صلاحیتیں: - ایک فائل کی پورٹیبلٹی: ڈیک، فونٹس، تصاویر، چارٹس، اینیمیشنز اور مکمل ایڈیٹر سب ساتھ سفر کرتے ہیں؛ دستاویز کا ڈیٹا فائل کے اوپری حصے کے قریب ایک سادہ، پڑھنے کے قابل JSON بلاک میں ہوتا ہے، لہٰذا یہ معائنہ اور بیرونی ٹولز کے ذریعے ترمیم کے قابل ہے۔ - خود محفوظ کرنا: فائل File System Access API کے ذریعے محفوظ کرتے وقت اپنا ڈیٹا بلاک خود دوبارہ لکھتی ہے، ڈاؤن لوڈ کے متبادل کے ساتھ۔ - مورف پیشکش: ایک جیسی id رکھنے والے عناصر سلائیڈز کے درمیان پوزیشن، سائز، رنگ اور گریڈینٹس میں اینیمیٹ ہوتے ہیں، جو DOM کی بجائے دستاویز ماڈل سے شمار کیے جاتے ہیں۔ - براہ راست تعاون: اینڈ ٹو اینڈ انکرپشن (AES-GCM) جس کی کلیدیں فائل میں محفوظ ہوتی ہیں، سرور پر نہیں؛ ایک اختیاری بلائنڈ سنک ریلے صرف سائفر ٹیکسٹ محفوظ کرتا ہے۔ ضم کرنے کے لیے اندرونِ خانہ CRDT استعمال ہوتا ہے جس میں حرف کی سطح پر متن ضم ہوتا ہے، جسے کنورجنس ٹیسٹ اسکرپٹ کے ذریعے فز ٹیسٹ کیا جاتا ہے۔ - بلٹ اِن چارٹس: بار، لائن، پائی اور اسکیٹر جو ایک بغیر انحصار انجن سے بنائے جاتے ہیں، پیشکش کے دوران متعامل، اور چارٹ اقسام کے درمیان ڈیٹا مورفنگ کے ساتھ۔ - AI کے لیے موزوں فارمیٹ: چونکہ دستاویز سادہ JSON ہے، فائل پر مبنی ایجنٹس (Claude Code، Cursor، Aider) .bento.html کو اسی جگہ ترمیم کر سکتے ہیں، اور چیٹ بوٹس window.bento.loadDoc کے ذریعے JSON کو راؤنڈ ٹرپ کر سکتے ہیں۔ یہ دستاویزی طور پر Ollama، llama.cpp یا LM Studio کے ذریعے مقامی اوپن ویٹ ماڈلز کے ساتھ آف لائن کام کرتا ہے۔ - دستخط شدہ خود اپ ڈیٹس: ریلیزز ECDSA سے دستخط شدہ ہوتی ہیں اور ایپ کے اندر پیش کی جاتی ہیں؛ اپ ڈیٹ کرنے پر نئی فائل لکھی جاتی ہے جبکہ پرانی رول بیک کے طور پر موجود رہتی ہے۔ - دیگر درج خصوصیات: اسپیکر ویو، تبصرے، لے آؤٹس، پوشیدہ متعامل حالتیں، ہوور ریویلز، موشن پاتھز، PDF ایکسپورٹ، صفحہ سائز اور 8 UI زبانیں۔ آرکیٹیکچر کا خلاصہ ایک TypeScript دستاویز ماڈل (slides/src/model.ts) کے طور پر کیا گیا ہے جس میں ایک واحد رینڈرر ایڈیٹر کینوس، تھمب نیلز اور پریزنٹ موڈ کے لیے استعمال ہوتا ہے؛ Reveal.js نیویگیشن چلاتا ہے؛ اینیمیشن، چارٹس اور تعاون اندرونِ خانہ اجزاء ہیں۔ شیل تقریباً 560 KB تک کمپریس ہو جاتا ہے جبکہ دستاویز بلاک سادہ متن کے طور پر رہتا ہے۔ README سیکیورٹی ماڈل کے بارے میں صاف گو ہے: تعاون کی کلیدیں کلائنٹ سائیڈ پر بنائی جاتی ہیں اور صرف فائل میں رہتی ہیں، لہٰذا فائل کا قبضہ رکنیت کے برابر ہے اور کلید کی گردش منسوخی ہے؛ ریلے سائفر ٹیکسٹ، کنکشن کے وقت اور روم کلید کا ہیش دیکھتا ہے؛ موجودگی کے نام دعوے ہیں، ثبوت نہیں؛ اپ ڈیٹ چیک ایک جامد مینی فیسٹ حاصل کرتے ہیں اور دستخط، ہیش اور ورژن کی یک جہتی تصدیق کرتے ہیں۔ معلوم تجارتی نقصانات میں براہ راست تعاون کے دوران اسنیپ شاٹ پر مبنی انڈو اور ڈیسک ٹاپ کو ترجیح دینے والا ترمیمی تجربہ شامل ہیں، جبکہ فونز دیکھنے اور پیش کرنے کے لیے زیادہ موزوں ہیں۔ سورس سے بنانے کے لیے Node 20+ اور npm درکار ہے؛ ایپ ایک سنگل پیج بلڈ ہے جس میں کوئی بیک اینڈ نہیں۔ کمانڈز میں npm run dev، npm run build:single اور ایک CRDT کنورجنس ٹیسٹ اسکرپٹ شامل ہیں۔ ریلیزز مقامی طور پر کاٹی جاتی ہیں تاکہ دستخطی کلید مینٹینر کی مشین پر رہے۔ دستاویزات میں آرکیٹیکچر، معیاری bento/slides فارمیٹ اسپیک، تعاون کا ڈیزائن اور خطرے کا ماڈل، اور ایک ایجنٹ گائیڈ شامل ہیں۔ روڈ میپ میں مستقبل کی ایپس کے نام دیے گئے ہیں: bento/spaces (نوٹس)، bento/dash (شیٹس اور ٹیبلز) اور bento/vault، ہر ایک اپنی الگ .bento.html ڈسٹری بیوٹیبل کے طور پر۔ سب کچھ MIT لائسنس یافتہ ہے، جس میں بنڈل شدہ رن ٹائم اجزاء MIT کے تحت اور ایمبیڈڈ ٹائپ فیسز OFL کے تحت ہیں۔