প্রকল্প সম্পর্কে

DSH for Vaults হলো একটি Obsidian ডেস্কটপ প্লাগইন যা Obsidian-এর ভেতরে DeepSeek Harness (DSH) নেটিভ Web UI-কে এমবেড করে। README অনুযায়ী, প্রতিটি ভল্ট নিজস্ব সম্পূর্ণ আইসোলেটেড DSH ইনস্ট্যান্স পায়: একটি ভল্ট খুললে সেটি ওই ভল্টটিকে ওয়ার্কস্পেস হিসেবে নিয়ে DSH শুরু করে এবং সেশন হিস্ট্রি প্রতিটি ভল্টের জন্য আলাদা থাকে এবং কখনও মিশে যায় না। এই প্লাগইনটি একটি লঞ্চার এবং এমবেডেড ক্লায়েন্ট হিসেবে কাজ করে, এটি নিজে DSH ইমপ্লিমেন্টেশন বহন করে না। README-তে বর্ণিত মূল ক্ষমতাগুলো হলো: - এমবেডেড ওয়েবভিউ UI: আসল DSH ইন্টারফেসটি একটি ডেডিকেটেড Electron ওয়েবভিউতে চলে, যেখানে ভল্ট-ভিত্তিক পারসিস্টেন্ট সেশন স্টোরেজ এবং কুকি-সেফ টোকেন অথেন্টিকেশন রয়েছে। - টু-ওয়ে ব্রিজ: নির্বাচিত টেক্সটে রাইট-ক্লিক করে ফাইল এবং লাইন/কলাম রেঞ্জসহ একটি লোকেটর লাইন DSH কম্পোজারে পাঠানো যায়; DSH চ্যাটে কোনো ভল্ট ফাইল পাথে ক্লিক করলে Obsidian-এ সংশ্লিষ্ট নোটটি খুলে যায়। ফাইল না পাওয়া গেলে নোটিশ দেওয়া হয়, আর ভল্টের বাইরের এবং বাইনারি পাথের ক্ষেত্রে DSH-এর স্বাভাবিক আচরণ বজায় থাকে। - হটকি পাসথ্রু: সেটিংস টগল করার মাধ্যমে DSH প্যানেলে ফোকাস থাকা অবস্থাতেও কনফিগার করা Obsidian শর্টকাটগুলো কাজ করে। - জিরো-টার্মিনাল বুটস্ট্র্যাপ: যদি Node.js বা DSH না থাকে, তবে প্যানেলটি একটি প্রাইভেট পোর্টেবল রানটাইম (প্রায় ৩০ এমবি, অ্যাডমিন পারমিশন প্রয়োজন নেই, সিস্টেম অপরিবর্তিত থাকে) ইনস্টল করতে পারে এবং এরপর নিজেই DSH কার্নেল ডাউনলোড ও চালু করতে পারে, যেখানে লাইভ প্রগ্রেস এবং npm মিরর ফলব্যাক সুবিধা রয়েছে। - DSH ইনস্ট্যান্সগুলোর মধ্যে মডেল কনফিগারেশন সিঙ্ক: ইনক্রিমেন্টাল মোড প্রতিটি কনফ্লিক্টের জন্য মিসিং এন্ট্রি এবং প্রম্পট কপি করে; ওভাররাইট মোড একটি নির্বাচিত সোর্স অনুযায়ী প্রোভাইডার এবং ক্রেডেনশিয়াল রেফারেন্সগুলোকে সারিবদ্ধ করে এবং অটো-ব্যাকআপ নেয়। সিঙ্ক করা আইটেমগুলোর মধ্যে LLM প্রোভাইডার এবং API ক্রেডেনশিয়াল রেফারেন্স অন্তর্ভুক্ত; তবে প্রতি-ইনস্ট্যান্স লগইন রেকর্ড, ডিফল্ট মডেল রুট, সার্চ মডেল এবং প্লাগইন প্রোফাইল সিঙ্ক হয় না। - আপডেট পলিসি: এটি অফিসিয়াল স্টেবল চ্যানেল ট্র্যাক করে এবং শুধুমাত্র স্পষ্ট নিশ্চিতকরণের পরেই ইনস্টল করে; স্টার্টআপের সময় ভার্সন পরিবর্তনের জন্য অনলাইনে যায় না। - ডেটা মাইগ্রেশন: পুরনো কার্নেল থেকে আপগ্রেড করার সময় সেশন ডেটা অটো-মাইগ্রেট হয় এবং প্রথমে ব্যাকআপ নেওয়া হয়, যার ব্যাকআপ ডিরেক্টরি কনফিগার করা সম্ভব। - প্রতি-ভল্ট আইসোলেশন: ডেটা ভল্টের বাইরে একটি ডেডিকেটেড লোকাল ডিরেক্টরিতে সংরক্ষিত থাকে এবং README অনুযায়ী এটি OneDrive-এর মাধ্যমে সিঙ্ক হয় না। - ডায়াগনস্টিকস: সেটিংসের মাধ্যমে প্রোব, Node ডিটেকশন, পোর্ট, কার্নেল এবং UI লোডের জন্য প্রতি-পর্যায়ের বুট টাইমিং, এরর টেইলস এবং কপিযোগ্য লগ দেখা যায়; টাইমআউট হলে পুরনো প্রসেস ট্রি পরিষ্কার করা হয়। প্রয়োজনীয়তা: উইন্ডোজে Obsidian ডেস্কটপ v1.4 বা তার পরবর্তী ভার্সন। Node.js আগে থেকে থাকা আবশ্যক নয় কারণ প্লাগইনটি পোর্টেবল রানটাইম ইনস্টল করতে পারে অথবা অ্যাবসোলিউট পাথের মাধ্যমে বিদ্যমান ইনস্টলেশন শনাক্ত করতে পারে। ইনস্টলেশন: Obsidian কমিউনিটি প্লাগইনসে 'DSH for Vaults' লিখে সার্চ করে, BRAT-এর মাধ্যমে moozhu/dsh-obsidian রিপোজিটরি ব্যবহার করে, অথবা ম্যানুয়ালি ভল্টের .obsidian/plugins/dsh-ob/ ফোল্ডারে main.js, manifest.json এবং styles.css ফাইলগুলো রেখে প্লাগইনটি এনাবল করার মাধ্যমে ইনস্টল করা যায়। ব্যবহার: হোয়েল আইকন বা কমান্ড প্যালেট থেকে প্যানেলটি খুলুন, স্টার্টআপের জন্য অপেক্ষা করুন, তারপর ভল্টটিকে অ্যাক্টিভ ওয়ার্কস্পেস হিসেবে নিয়ে চ্যাট করুন। স্ট্যাটাস বার ইনস্ট্যান্সের অবস্থা দেখায়। মাল্টি-ভল্ট আচরণের মধ্যে রয়েছে প্রতি ভল্টের জন্য ডিটারমিনিস্টিক পোর্ট, বিভিন্ন ভল্টের জন্য স্বতন্ত্র ইনস্ট্যান্স, দুটি উইন্ডোতে একই ভল্টের জন্য একটি শেয়ারড ইনস্ট্যান্স, এবং কনফিগার করা না থাকলে উইন্ডো বন্ধ করার সময় ইনস্ট্যান্স বন্ধ হওয়া। বটম প্যাডিং ০ থেকে ৪০ পিক্সেল পর্যন্ত অ্যাডজাস্ট করা যায়। প্রাইভেসি: README-তে উল্লেখ করা হয়েছে যে প্লাগইনটি একটি লঞ্চার এবং এমবেডেড ক্লায়েন্ট, যা শুধুমাত্র লোকালহোস্ট (127.0.0.1)-এর মাধ্যমে DSH-এর সাথে কথা বলে এবং এতে কোনো টেলিম্যাট্রি বা রিলয় নেই। তবে টাস্কের ওপর ভিত্তি করে DSH নিজেই মডেল API-এর মতো আউটবাউন্ড রিকোয়েস্ট পাঠাতে পারে। সেশন হিস্ট্রি, মডেল কনফিগ এবং API ক্রেডেনশিয়াল ভল্টের ডেডিকেটেড লোকাল ডেটা ডিরেক্টরিতে থাকে। সেটিংসের মধ্যে রয়েছে এক্সিকিউটেবল পাথ, ভার্সন আপডেট, ডেটা ব্যাকআপ ডিরেক্টরি, বেস পোর্ট, Obsidian খোলার সাথে সাথে অটো-স্টার্ট, বন্ধ করার সময় স্টপ, হটকি পাসথ্রু, রিভার্স ব্রিজ, মডেল কনফিগ সিঙ্ক, প্যানেল লোকেশন, প্যানেল বটম প্যাডিং এবং বুট টাইমিং ডায়াগনস্টিকস। ডেভলপমেন্ট কমান্ডগুলো হলো npm install, TypeScript ওয়াচের জন্য npm run dev, npm run typecheck, এবং esbuild দিয়ে টাইপ-চেক ও বান্ডেল করার জন্য npm run build।