diff --git a/README.ar.md b/README.ar.md index beb44589e6..bfff136f1d 100644 --- a/README.ar.md +++ b/README.ar.md @@ -1,18 +1,4 @@ -
-
-
-
وكيل برمجة بالذكاء الاصطناعي مفتوح المصدر.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +شعبة نظيفة من [OpenCode](https://github.com/anomalyco/opencode) تمت إزالة جميع بيانات التتبع (Telemetry) وسلوك "الاتصال الخلفي" (Phone-home) منها. ---- +تسوق OpenCode نفسها على أنها "تضع الخصوصية أولاً" و"مفتوحة المصدر"، لكنها تنقل البيانات بصمت إلى خدمات طرف ثالث متعددة — تحليلات الاستخدام (PostHog)، قياس الأداء (Honeycomb)، مشاركة الجلسات (opncd.ai)، ووكالة الأوامر (prompt proxying) (opencode.ai/zen)، وتوجيه استعلامات البحث (mcp.exa.ai)، وجلب قوائم النماذج التي تسرب عناوين IP (models.dev). أنكر الحفاظون على المشروع في البداية وجود قياس للأداء ([#459](https://github.com/sst/opencode/issues/459))، ثم اعترفوا به. يبلغ المستخدمون أن تعطيل قياس الأداء في ملف التكوين لا يوقف اتصالات الخروج بالكامل ([#5554](https://github.com/sst/opencode/issues/554)). -### التثبيت +لا يحاول Rolandcode إقناع OpenCode بالتغيير. إنه ببساطة يزيل بيانات التتبع الخاصة بهم وينشر نسخًا نظيفة. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# مديري الحزم -npm i -g opencode-ai@latest # او bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS و Linux (موصى به، دائما محدث) -brew install opencode # macOS و Linux (صيغة brew الرسمية، تحديث اقل) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # اي نظام -nix run nixpkgs#opencode # او github:anomalyco/opencode لاحدث فرع dev -``` +الاسم مستمد من شعر روبرت براونينغ "جاء رولاند الطفل إلى البرج المظلم" (Childe Roland to the Dark Tower Came) — يصل رولاند إلى البرج على الرغم من كل ما يحاول إيقافه. + +--- + +## ما تم إزالته -> [!TIP] -> احذف الاصدارات الاقدم من 0.1.x قبل التثبيت. +| Endpoint | ما أرسله | +|----------|-------------| +| `us.i.posthog.com` | تحليلات الاستخدام | +| `api.honeycomb.io` | بيانات التتبع، عنوان IP، الموقع | +| `api.opencode.ai` | محتوى الجلسة، الأوامر (Prompts) | +| `opncd.ai` | بيانات مشاركة الجلسة | +| `opencode.ai/zen/v1` | أوامر تم توجيهها عبر بوابة OpenCode | +| `mcp.exa.ai` | استعلامات البحث | +| `models.dev` | جلب قوائم النماذج (يسرب IP) | +| `app.opencode.ai` | وكيل التطبيق الشامل (Catch-all) | -### تطبيق سطح المكتب (BETA) +يتم تضمين كتالوج النماذج (Model Catalog) في وقت البناء من نسخة محلية — بدون اتصال خلفي في وقت التشغيل. -يتوفر OpenCode ايضا كتطبيق سطح مكتب. قم بالتنزيل مباشرة من [صفحة الاصدارات](https://github.com/anomalyco/opencode/releases) او من [opencode.ai/download](https://opencode.ai/download). +## التثبيت -| المنصة | التنزيل | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb` او `.rpm` او AppImage | +قم بتنزيل ملف تنفيذي من [صفحة الإصدارات](https://github.com/TODO/rolandcode/releases)، أو قم بالبناء من المصدر: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# تنزيل نسخة من كتالوج النماذج +curl -fsSL -o models-api.json https://models.dev/api.json + +# البناء +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### مجلد التثبيت +الملف التنفيذي موجود في `dist/opencode-linux-x64/bin/rolandcode` (أو ما يعادله لمنصتك). -يحترم سكربت التثبيت ترتيب الاولوية التالي لمسار التثبيت: +## التحقق -1. `$OPENCODE_INSTALL_DIR` - مجلد تثبيت مخصص -2. `$XDG_BIN_DIR` - مسار متوافق مع مواصفات XDG Base Directory -3. `$HOME/bin` - مجلد الثنائيات القياسي للمستخدم (ان وجد او امكن انشاؤه) -4. `$HOME/.opencode/bin` - المسار الافتراضي الاحتياطي +يمكن التحقق من نظافة كل نسخة: ```bash -# امثلة -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +هذا الأمر يفحص شجرة المصدر بالكامل بحثًا عن جميع نطاقات التتبع المعروفة وحزم SDK. إذا بقي أي مرجع، تفشل النسخة. grep لا يكذب. -يتضمن OpenCode وكيليْن (Agents) مدمجين يمكنك التبديل بينهما باستخدام زر `Tab`. +## كيف يعمل -- **build** - الافتراضي، وكيل بصلاحيات كاملة لاعمال التطوير -- **plan** - وكيل للقراءة فقط للتحليل واستكشاف الكود - - يرفض تعديل الملفات افتراضيا - - يطلب الاذن قبل تشغيل اوامر bash - - مثالي لاستكشاف قواعد كود غير مألوفة او لتخطيط التغييرات +يحتفظ Rolandcode بمجموعة صغيرة من التصحيحات (Patches) فوق OpenCode الأصلي. كل تسليم إزالة (Strip Commit) يزيل مخاوف التتبع واحدة تلو الأخرى: -بالاضافة الى ذلك يوجد وكيل فرعي **general** للبحث المعقد والمهام متعددة الخطوات. -يستخدم داخليا ويمكن استدعاؤه بكتابة `@general` في الرسائل. +- `strip-posthog` — تحليلات PostHog +- `strip-honeycomb` — قياس أداء Honeycomb +- `strip-exa` — توجيه بحث mcp.exa.ai +- `strip-opencode-api` — نقاط نهاية api.opencode.ai و opncd.ai +- `strip-zen-gateway` — توجيه وكيل Zen +- `strip-app-proxy` — وكيل app.opencode.ai الشامل +- `strip-share-sync` — مشاركة الجلسة التلقائية +- `strip-models-dev` — جلب قوائم النماذج في وقت التشغيل -تعرف على المزيد حول [agents](https://opencode.ai/docs/agents). +التسليمات الصغيرة والمعزولة تعيد أساسها (Rebase) بشكل نظيف عند تحرك المصدر الأصلي. -### التوثيق +## الاختبار -لمزيد من المعلومات حول كيفية ضبط OpenCode، [**راجع التوثيق**](https://opencode.ai/docs). - -### المساهمة +```bash +# المجموعة الكاملة (تشغيل اختبارات الأذونات في Docker عند التشغيل كمسؤول) +bash scripts/test.sh -اذا كنت مهتما بالمساهمة في OpenCode، يرجى قراءة [contributing docs](./CONTRIBUTING.md) قبل ارسال pull request. +# فقط المجموعة الرئيسية +cd packages/opencode && bun test --timeout 30000 -### البناء فوق OpenCode +# فقط اختبارات الأذونات (يجب أن يكون غير مسؤول، أو استخدام Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -اذا كنت تعمل على مشروع مرتبط بـ OpenCode ويستخدم "opencode" كجزء من اسمه (مثل "opencode-dashboard" او "opencode-mobile")، يرجى اضافة ملاحظة في README توضح انه ليس مبنيا بواسطة فريق OpenCode ولا يرتبط بنا بأي شكل. +### مشاكل الاختبار المعروفة -### FAQ +| الاختبار | الحالة | السبب | +|------|--------|-----| +| `session.llm.stream` (2 من 10) | غير مستقر (Flaky) | تسرب حالة خادم HTTP الوهمي (Mock) بين الاختبارات المتوازية. يمر 10/10 عند التشغيل في عزلة (`bun test test/session/llm.test.ts`). عيب في عزل الاختبارات في المصدر الأصلي — وليس عيبًا في الكود. | +| `tool.write > يرمي خطأ عندما يمنع نظام التشغيل الوصول للكتابة` | يفشل كمسؤول (Root) | المسؤول يتجاوز `chmod 0o444`. يمر في Docker كغير مسؤول. `scripts/test.sh` يتعامل مع هذا تلقائيًا. | +| `tui config > يستمر التحميل عندما لا يمكن إزالة المصدر القديم` | يفشل كمسؤول | نفس مشكلة المسؤول مقابل chmod. يمر في Docker كغير مسؤول. | +| `fsmonitor` (2 اختبارات) | متخطى | ويندوز فقط (`process.platform === "win32"`). | +| `worktree-remove` (1 اختبار) | متخطى | ويندوز فقط. | +| `تعديل واستعادة أسماء الملفات Unicode` | متخطى | تم تخطيه صراحة في المصدر الأصلي — عيب معروف لم يتم إصلاحه. | -#### ما الفرق عن Claude Code؟ +## المصدر الأصلي (Upstream) -هو مشابه جدا لـ Claude Code من حيث القدرات. هذه هي الفروقات الاساسية: +هذه شعبة من [anomalyco/opencode](https://github.com/anomalyco/opencode) (ترخيص MIT). كل الكود الأصلي ملكهم. يتم حفظ تاريخ التسليم الكامل للمصدر الأصلي — يمكنك رؤية بالضبط ما تم تغييره ولماذا. -- 100% مفتوح المصدر -- غير مقترن بمزود معين. نوصي بالنماذج التي نوفرها عبر [OpenCode Zen](https://opencode.ai/zen)؛ لكن يمكن استخدام OpenCode مع Claude او OpenAI او Google او حتى نماذج محلية. مع تطور النماذج ستتقلص الفجوات وستنخفض الاسعار، لذا من المهم ان يكون مستقلا عن المزود. -- دعم LSP جاهز للاستخدام -- تركيز على TUI. تم بناء OpenCode بواسطة مستخدمي neovim ومنشئي [terminal.shop](https://terminal.shop)؛ وسندفع حدود ما هو ممكن داخل الطرفية. -- معمارية عميل/خادم. على سبيل المثال، يمكن تشغيل OpenCode على جهازك بينما تقوده عن بعد من تطبيق جوال. هذا يعني ان واجهة TUI هي واحدة فقط من العملاء الممكنين. +OpenCode هو وكيل برمجة ذكاء اصطناعي قادر مع واجهة نصية رائعة (TUI)، ودعم LSP، ومرونة متعددة المزودين. نستخدمه لأنه برنامج جيد. نزيل بيانات التتبع لأن مطالبات الخصوصية لا تتطابق مع السلوك. ---- +## الترخيص -**انضم الى مجتمعنا** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — نفس المصدر الأصلي. راجع [LICENSE](LICENSE). diff --git a/README.bn.md b/README.bn.md index c7abc7346a..b9517e62f4 100644 --- a/README.bn.md +++ b/README.bn.md @@ -1,18 +1,4 @@ -
-
-
-
ওপেন সোর্স এআই কোডিং এজেন্ট।
- +# RolandcodeEnglish | @@ -39,103 +25,102 @@ Tiếng Việt
-[](https://opencode.ai) +[OpenCode]-এর একটি পরিষ্কার ফর্ক যেখানে সমস্ত টেলিমিট্রি এবং ফোন-হোম আচরণ অপসারণ করা হয়েছে। ---- +OpenCode নিজেকে "গোপনীয়তা-প্রথম" এবং "ওপেন সোর্স" হিসেবে প্রচার করে, কিন্তু নীরবে একাধিক তৃতীয় পক্ষের সার্ভিসে ডেটা পাঠায় — বিশ্লেষণ (PostHog), টেলিমিট্রি (Honeycomb), সেশন শেয়ারিং (opncd.ai), প্রম্পট প্রক্সি (opencode.ai/zen), সার্চ কোয়েরি ফরওয়ার্ডিং (mcp.exa.ai), এবং আইপি-লিকিং মডেল লিস্ট ফেচ (models.dev)। মেইনটেইনাররা প্রাথমিকভাবে অস্বীকার করেছিলেন যে টেলিমিট্রি বিদ্যমান ([#459](https://github.com/sst/opencode/issues/459)), পরে তারা এটি স্বীকার করেন। ব্যবহারকারীরা রিপোর্ট করেছেন যে কনফিগ-তে টেলিমিট্রি নিষ্ক্রিয় করলেও আউটবাইন্ড সংযোগ পুরোপুরি থামে না ([#5554](https://github.com/sst/opencode/issues/5554))। -### ইনস্টলেশন (Installation) +Rolandcode OpenCode-কে পরিবর্তন করতে রাজি করানোর চেষ্টা করে না। এটি শুধুমাত্র তাদের টেলিমিট্রি অপসারণ করে পরিষ্কার বিল্ড শিপ করে। -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Package managers -npm i -g opencode-ai@latest # or bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS and Linux (recommended, always up to date) -brew install opencode # macOS and Linux (official brew formula, updated less) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # Any OS -nix run nixpkgs#opencode # or github:anomalyco/opencode for latest dev branch -``` +নামটি ব্রাউনিংয়ের *Childe Roland to the Dark Tower Came*-এর থেকে — রোল্যান্ড সব কিছুকে থামানোর চেষ্টার পরেও টাওয়ারে পৌঁছায়। -> [!TIP] -> ইনস্টল করার আগে ০.১.x এর চেয়ে পুরোনো ভার্সনগুলো মুছে ফেলুন। +## কী অপসারণ করা হয়েছে -### ডেস্কটপ অ্যাপ (BETA) +| এন্ডপয়েন্ট | কী পাঠানো হতো | +|----------|-------------| +| `us.i.posthog.com` | ব্যবহার বিশ্লেষণ | +| `api.honeycomb.io` | টেলিমিট্রি, আইপি ঠিকানা, অবস্থান | +| `api.opencode.ai` | সেশন কন্টেন্ট, প্রম্পট | +| `opncd.ai` | সেশন শেয়ারিং ডেটা | +| `opencode.ai/zen/v1` | OpenCode-এর গেটওয়ে-র মাধ্যমে প্রক্সি করা প্রম্পট | +| `mcp.exa.ai` | সার্চ কোয়েরি | +| `models.dev` | মডেল লিস্ট ফেচ (আইপি লিক করে) | +| `app.opencode.ai` | ক্যাচ-অল অ্যাপ প্রক্সি | -OpenCode ডেস্কটপ অ্যাপ্লিকেশন হিসেবেও উপলব্ধ। সরাসরি [রিলিজ পেজ](https://github.com/anomalyco/opencode/releases) অথবা [opencode.ai/download](https://opencode.ai/download) থেকে ডাউনলোড করুন। +মডেল ক্যাটালগ বিল্ডের সময় একটি স্থানীয় স্ন্যাপশট থেকে ভেন্ডর করা হয় — কোনো রানটাইম ফোন-হোম নেই। -| প্ল্যাটফর্ম | ডাউনলোড | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, or AppImage | +## ইনস্টলেশন + +[রিলিজ পেজ](https://github.com/TODO/rolandcode/releases) থেকে একটি বাইনারি ডাউনলোড করুন, অথবা সোর্স থেকে বিল্ড করুন: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# একটি মডেল ক্যাটালগ স্ন্যাপশট ডাউনলোড করুন +curl -fsSL -o models-api.json https://models.dev/api.json + +# বিল্ড করুন +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### ইনস্টলেশন ডিরেক্টরি (Installation Directory) +বাইনারিটি `dist/opencode-linux-x64/bin/rolandcode`-এ অবস্থিত (অথবা আপনার প্ল্যাটফর্মের জন্য সমমানের)। -ইনস্টল স্ক্রিপ্টটি ইনস্টলেশন পাতের জন্য নিম্নলিখিত অগ্রাধিকার ক্রম মেনে চলে: +## যাচাই -1. `$OPENCODE_INSTALL_DIR` - কাস্টম ইনস্টলেশন ডিরেক্টরি -2. `$XDG_BIN_DIR` - XDG বেস ডিরেক্টরি স্পেসিফিকেশন সমর্থিত পাথ -3. `$HOME/bin` - সাধারণ ব্যবহারকারী বাইনারি ডিরেক্টরি (যদি বিদ্যমান থাকে বা তৈরি করা যায়) -4. `$HOME/.opencode/bin` - ডিফল্ট ফলব্যাক +প্রতিটি বিল্ড পরিষ্কার হিসেবে যাচাই করা যায়: ```bash -# উদাহরণ -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### এজেন্টস (Agents) +এটি সমস্ত পরিচিত টেলিমিট্রি ডোমেইন এবং এসডিকে প্যাকেজের জন্য পুরো সোর্স ট্রি-তে গ্রিপ করে। যদি কোনো রেফারেন্স থাকে, বিল্ড ব্যর্থ হয়। গ্রিপ মিথ্যা বলে না। -OpenCode এ দুটি বিল্ট-ইন এজেন্ট রয়েছে যা আপনি `Tab` কি(key) দিয়ে পরিবর্তন করতে পারবেন। +## এটি কীভাবে কাজ করে -- **build** - ডিফল্ট, ডেভেলপমেন্টের কাজের জন্য সম্পূর্ণ অ্যাক্সেসযুক্ত এজেন্ট -- **plan** - বিশ্লেষণ এবং কোড এক্সপ্লোরেশনের জন্য রিড-ওনলি এজেন্ট - - ডিফল্টভাবে ফাইল এডিট করতে দেয় না - - ব্যাশ কমান্ড চালানোর আগে অনুমতি চায় - - অপরিচিত কোডবেস এক্সপ্লোর করা বা পরিবর্তনের পরিকল্পনা করার জন্য আদর্শ +Rolandcode আপস্ট্রিম OpenCode-এর উপরে একটি ছোট প্যাচ সেট বজায় রাখে। প্রতিটি স্ট্রিপ কমিট একটি টেলিমিট্রি বিষয় অপসারণ করে: -এছাড়াও জটিল অনুসন্ধান এবং মাল্টিস্টেপ টাস্কের জন্য একটি **general** সাবএজেন্ট অন্তর্ভুক্ত রয়েছে। -এটি অভ্যন্তরীণভাবে ব্যবহৃত হয় এবং মেসেজে `@general` লিখে ব্যবহার করা যেতে পারে। +- `strip-posthog` — PostHog বিশ্লেষণ +- `strip-honeycomb` — Honeycomb টেলিমিট্রি +- `strip-exa` — mcp.exa.ai সার্চ ফরওয়ার্ডিং +- `strip-opencode-api` — api.opencode.ai এবং opncd.ai এন্ডপয়েন্ট +- `strip-zen-gateway` — Zen প্রক্সি রাউটিং +- `strip-app-proxy` — app.opencode.ai ক্যাচ-অল প্রক্সি +- `strip-share-sync` — স্বয়ংক্রিয় সেশন শেয়ারিং +- `strip-models-dev` — রানটাইম মডেল লিস্ট ফেচিং -এজেন্টদের সম্পর্কে আরও জানুন: [docs](https://opencode.ai/docs/agents)। +ছোট, বিচ্ছিন্ন কমিট আপস্ট্রিম যখন সরে যায় তখন পরিষ্কারভাবে রিবেজ হয়। -### ডকুমেন্টেশন (Documentation) +## টেস্টিং -কিভাবে OpenCode কনফিগার করবেন সে সম্পর্কে আরও তথ্যের জন্য, [**আমাদের ডকস দেখুন**](https://opencode.ai/docs)। - -### অবদান (Contributing) +```bash +# পূর্ণ সুট (রুট হিসেবে রান করার সময় ডকারে অনুমতি টেস্ট চালায়) +bash scripts/test.sh -আপনি যদি OpenCode এ অবদান রাখতে চান, অনুগ্রহ করে একটি পুল রিকোয়েস্ট সাবমিট করার আগে আমাদের [কন্ট্রিবিউটিং ডকস](./CONTRIBUTING.md) পড়ে নিন। +# শুধুমাত্র প্রধান সুট +cd packages/opencode && bun test --timeout 30000 -### OpenCode এর উপর বিল্ডিং (Building on OpenCode) +# শুধুমাত্র অনুমতি টেস্ট (রুট-হীন হতে হবে, অথবা ডকার ব্যবহার করুন) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -আপনি যদি এমন প্রজেক্টে কাজ করেন যা OpenCode এর সাথে সম্পর্কিত এবং প্রজেক্টের নামের অংশ হিসেবে "opencode" ব্যবহার করেন, উদাহরণস্বরূপ "opencode-dashboard" বা "opencode-mobile", তবে দয়া করে আপনার README তে একটি নোট যোগ করে স্পষ্ট করুন যে এই প্রজেক্টটি OpenCode দল দ্বারা তৈরি হয়নি এবং আমাদের সাথে এর কোনো সরাসরি সম্পর্ক নেই। +### জানা টেস্ট ইস্যু -### সচরাচর জিজ্ঞাসিত প্রশ্নাবলী (FAQ) +| টেস্ট | অবস্থা | কারণ | +|------|--------|-----| +| `session.llm.stream` (১০-এর মধ্যে ২টি) | অস্থির | সমান্তরাল টেস্টের মধ্যে মক HTTP সার্ভার অবস্থা লিক করে। বিচ্ছিন্নভাবে চালানো হলে ১০/১০ পাস করে (`bun test test/session/llm.test.ts`)। আপস্ট্রিম টেস্ট বিচ্ছিন্নতা বাগ — কোডের ত্রুটি নয়। | +| `tool.write > OS লেখা অ্যাক্সেস প্রত্যাখ্যান করলে ত্রুটি ফেলে` | রুট হিসেবে ব্যর্থ | রুট `chmod 0o444` বাইপাস করে। ডকারে রুট-হীন হিসেবে পাস করে। `scripts/test.sh` এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে। | +| `tui config > লেগেসি সোর্স অপসারণ করা না গেলে লোডিং চালিয়ে যায়` | রুট হিসেবে ব্যর্থ | একই রুট-বনাম-chmod ইস্যু। ডকারে রুট-হীন হিসেবে পাস করে। | +| `fsmonitor` (২টি টেস্ট) | স্কিপ | উইন্ডোজ-এর জন্য (`process.platform === "win32"`). | +| `worktree-remove` (১টি টেস্ট) | স্কিপ | উইন্ডোজ-এর জন্য। | +| `unicode filenames modification and restore` | স্কিপ | আপস্ট্রিম স্পষ্টভাবে স্কিপ করেছে — তারা ঠিক করেননি এমন একটি জানা বাগ। | -#### এটি ক্লড কোড (Claude Code) থেকে কীভাবে আলাদা? +## আপস্ট্রিম -ক্যাপাবিলিটির দিক থেকে এটি ক্লড কোডের (Claude Code) মতই। এখানে মূল পার্থক্যগুলো দেওয়া হলো: +এটি [anomalyco/opencode]-এর একটি ফর্ক (MIT লাইসেন্স)। সমস্ত মূল কোড তাদের। পুরো আপস্ট্রিম কমিট ইতিহাস সংরক্ষিত — আপনি ঠিক কী পরিবর্তন হয়েছে এবং কেন তা দেখতে পারেন। -- ১০০% ওপেন সোর্স -- কোনো প্রোভাইডারের সাথে আবদ্ধ নয়। যদিও আমরা [OpenCode Zen](https://opencode.ai/zen) এর মাধ্যমে মডেলসমূহ ব্যবহারের পরামর্শ দিই, OpenCode ক্লড (Claude), ওপেনএআই (OpenAI), গুগল (Google), অথবা লোকাল মডেলগুলোর সাথেও ব্যবহার করা যেতে পারে। যেমন যেমন মডেলগুলো উন্নত হবে, তাদের মধ্যকার পার্থক্য কমে আসবে এবং দামও কমবে, তাই প্রোভাইডার-অজ্ঞাস্টিক হওয়া খুবই গুরুত্বপূর্ণ। -- আউট-অফ-দ্য-বক্স LSP সাপোর্ট -- TUI এর উপর ফোকাস। OpenCode নিওভিম (neovim) ব্যবহারকারী এবং [terminal.shop](https://terminal.shop) এর নির্মাতাদের দ্বারা তৈরি; আমরা টার্মিনালে কী কী সম্ভব তার সীমাবদ্ধতা ছাড়িয়ে যাওয়ার চেষ্টা করছি। -- ক্লায়েন্ট/সার্ভার আর্কিটেকচার। এটি যেমন OpenCode কে আপনার কম্পিউটারে চালানোর সুযোগ দেয়, তেমনি আপনি মোবাইল অ্যাপ থেকে রিমোটলি এটি নিয়ন্ত্রণ করতে পারবেন, অর্থাৎ TUI ফ্রন্টএন্ড কেবল সম্ভাব্য ক্লায়েন্টগুলোর মধ্যে একটি। +OpenCode একটি সক্ষম এআই কোডিং এজেন্ট যার চমৎকার টিইউআই, এলএসপি সাপোর্ট, এবং মাল্টি-প্রোভাইডার নমনীয়তা আছে। আমরা এটি ব্যবহার করি কারণ এটি ভালো সফটওয়্যার। আমরা টেলিমিট্রি অপসারণ করি কারণ গোপনীয়তার দাবি আচরণের সাথে মিলে না। ---- +## লাইসেন্স -**আমাদের কমিউনিটিতে যুক্ত হোন** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — আপস্ট্রিমের মতো। দেখুন [LICENSE](LICENSE)। diff --git a/README.br.md b/README.br.md index 6d1de21562..30e62f95ab 100644 --- a/README.br.md +++ b/README.br.md @@ -1,18 +1,4 @@ -
-
-
-
O agente de programação com IA de código aberto.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Um fork limpo do [OpenCode](https://github.com/anomalyco/opencode) com toda a telemetria e comportamento de envio de dados externo ("phone-home") removidos. ---- +O OpenCode se comercializa como "privacidade em primeiro lugar" e "código aberto", mas transmite silenciosamente dados para vários serviços de terceiros — análise de uso (PostHog), telemetria (Honeycomb), compartilhamento de sessão (opncd.ai), proxy de prompts (opencode.ai/zen), encaminhamento de consultas de busca (mcp.exa.ai) e requisições de lista de modelos que vazam o IP (models.dev). Os mantenedores inicialmente negaram a existência de telemetria ([#459](https://github.com/sst/opencode/issues/459)), depois admitiram. Usuários relatam que desabilitar a telemetria na configuração não para completamente as conexões de saída ([#5554](https://github.com/sst/opencode/issues/5554)). -### Instalação +O Rolandcode não tenta convencer o OpenCode a mudar. Ele apenas remove a telemetria deles e distribui builds limpos. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Gerenciadores de pacotes -npm i -g opencode-ai@latest # ou bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS e Linux (recomendado, sempre atualizado) -brew install opencode # macOS e Linux (fórmula oficial do brew, atualiza menos) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # qualquer sistema -nix run nixpkgs#opencode # ou github:anomalyco/opencode para a branch dev mais recente -``` +O nome vem do poema de Browning *Childe Roland to the Dark Tower Came* (Childe Roland foi à Torre Negra) — Roland chega à torre apesar de tudo tentar impedi-lo. + +--- + +## O que foi removido -> [!TIP] -> Remova versões anteriores a 0.1.x antes de instalar. +| Endpoint | O que enviava | +|----------|-------------| +| `us.i.posthog.com` | Análise de uso | +| `api.honeycomb.io` | Telemetria, endereço IP, localização | +| `api.opencode.ai` | Conteúdo da sessão, prompts | +| `opncd.ai` | Dados de compartilhamento de sessão | +| `opencode.ai/zen/v1` | Prompts roteados pelo gateway do OpenCode | +| `mcp.exa.ai` | Consultas de busca | +| `models.dev` | Requisições de lista de modelos (vaza IP) | +| `app.opencode.ai` | Proxy de captura geral do aplicativo | -### App desktop (BETA) +O catálogo de modelos é incorporado no momento da build a partir de um instantâneo local — sem envio de dados externo em tempo de execução. -O OpenCode também está disponível como aplicativo desktop. Baixe diretamente pela [página de releases](https://github.com/anomalyco/opencode/releases) ou em [opencode.ai/download](https://opencode.ai/download). +## Instalação -| Plataforma | Download | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` ou AppImage | +Baixe um binário da [página de lançamentos](https://github.com/TODO/rolandcode/releases), ou construa a partir do código-fonte: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Baixe um instantâneo do catálogo de modelos +curl -fsSL -o models-api.json https://models.dev/api.json + +# Build +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Diretório de instalação +O binário está em `dist/opencode-linux-x64/bin/rolandcode` (ou o equivalente para sua plataforma). -O script de instalação respeita a seguinte ordem de prioridade para o caminho de instalação: +## Verificação -1. `$OPENCODE_INSTALL_DIR` - Diretório de instalação personalizado -2. `$XDG_BIN_DIR` - Caminho compatível com a especificação XDG Base Directory -3. `$HOME/bin` - Diretório binário padrão do usuário (se existir ou puder ser criado) -4. `$HOME/.opencode/bin` - Fallback padrão +Cada build pode ser verificado como limpo: ```bash -# Exemplos -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Isso executa um grep em toda a árvore de código-fonte por todos os domínios de telemetria conhecidos e pacotes de SDK. Se alguma referência permanecer, a build falha. O grep não mente. -O OpenCode inclui dois agents integrados, que você pode alternar com a tecla `Tab`. +## Como funciona -- **build** - Padrão, agent com acesso total para trabalho de desenvolvimento -- **plan** - Agent somente leitura para análise e exploração de código - - Nega edições de arquivos por padrão - - Pede permissão antes de executar comandos bash - - Ideal para explorar codebases desconhecidas ou planejar mudanças +O Rolandcode mantém um pequeno conjunto de patches sobre o OpenCode original. Cada commit de remoção elimina uma preocupação de telemetria: -Também há um subagent **general** para buscas complexas e tarefas em várias etapas. -Ele é usado internamente e pode ser invocado com `@general` nas mensagens. +- `strip-posthog` — Análise do PostHog +- `strip-honeycomb` — Telemetria do Honeycomb +- `strip-exa` — Encaminhamento de busca do mcp.exa.ai +- `strip-opencode-api` — Endpoints do api.opencode.ai e opncd.ai +- `strip-zen-gateway` — Roteamento de proxy Zen +- `strip-app-proxy` — Proxy de captura geral do app.opencode.ai +- `strip-share-sync` — Compartilhamento automático de sessão +- `strip-models-dev` — Requisição de lista de modelos em tempo de execução -Saiba mais sobre [agents](https://opencode.ai/docs/agents). +Commits pequenos e isolados fazem rebase limpo quando o projeto original avança. -### Documentação +## Testes -Para mais informações sobre como configurar o OpenCode, [**veja nossa documentação**](https://opencode.ai/docs). - -### Contribuir +```bash +# Suíte completa (executa testes de permissão no Docker quando rodando como root) +bash scripts/test.sh -Se você tem interesse em contribuir com o OpenCode, leia os [contributing docs](./CONTRIBUTING.md) antes de enviar um pull request. +# Apenas a suíte principal +cd packages/opencode && bun test --timeout 30000 -### Construindo com OpenCode +# Apenas os testes de permissão (deve ser não-root, ou usar Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Se você estiver trabalhando em um projeto relacionado ao OpenCode e estiver usando "opencode" como parte do nome (por exemplo, "opencode-dashboard" ou "opencode-mobile"), adicione uma nota no README para deixar claro que não foi construído pela equipe do OpenCode e não é afiliado a nós de nenhuma forma. +### Problemas conhecidos de teste -### FAQ +| Teste | Status | Por quê | +|------|--------|-----| +| `session.llm.stream` (2 de 10) | Instável (Flaky) | Estado do servidor HTTP mock vaza entre testes paralelos. Passa 10/10 quando executado em isolamento (`bun test test/session/llm.test.ts`). Bug de isolamento de teste do upstream — não é um defeito de código. | +| `tool.write > throws error when OS denies write access` | Falha como root | Root ignora `chmod 0o444`. Passa no Docker como não-root. `scripts/test.sh` lida com isso automaticamente. | +| `tui config > continues loading when legacy source cannot be stripped` | Falha como root | Mesmo problema root-vs-chmod. Passa no Docker como não-root. | +| `fsmonitor` (2 testes) | Pulado | Apenas Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 teste) | Pulado | Apenas Windows. | +| `unicode filenames modification and restore` | Pulado | Pulado explicitamente pelo upstream — bug conhecido que eles não corrigiram. | -#### Como isso é diferente do Claude Code? +## Projeto Original (Upstream) -É muito parecido com o Claude Code em termos de capacidade. Aqui estão as principais diferenças: +Este é um fork do [anomalyco/opencode](https://github.com/anomalyco/opencode) (licença MIT). Todo o código original é deles. O histórico completo de commits do upstream é preservado — você pode ver exatamente o que foi alterado e por quê. -- 100% open source -- Não está acoplado a nenhum provedor. Embora recomendemos os modelos que oferecemos pelo [OpenCode Zen](https://opencode.ai/zen); o OpenCode pode ser usado com Claude, OpenAI, Google ou até modelos locais. À medida que os modelos evoluem, as diferenças diminuem e os preços caem, então ser provider-agnostic é importante. -- Suporte a LSP pronto para uso -- Foco em TUI. O OpenCode é construído por usuários de neovim e pelos criadores do [terminal.shop](https://terminal.shop); vamos levar ao limite o que é possível no terminal. -- Arquitetura cliente/servidor. Isso, por exemplo, permite executar o OpenCode no seu computador enquanto você o controla remotamente por um aplicativo mobile. Isso significa que o frontend TUI é apenas um dos possíveis clientes. +O OpenCode é um agente de código IA capaz com uma excelente TUI, suporte a LSP e flexibilidade de múltiplos provedores. Nós o usamos porque é um bom software. Removemos a telemetria porque as alegações de privacidade não correspondem ao comportamento. ---- +## Licença -**Junte-se à nossa comunidade** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — mesma do upstream. Veja [LICENSE](LICENSE). diff --git a/README.bs.md b/README.bs.md index 2cff8e0279..296e905e06 100644 --- a/README.bs.md +++ b/README.bs.md @@ -1,18 +1,4 @@ -
-
-
-
OpenCode je open source AI agent za programiranje.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Čist fork projekta [OpenCode](https://github.com/anomalyco/opencode) s uklonjenim ponašanjem telemetrije i "phone-home". ---- +OpenCode se predstavlja kao "privatnost na prvom mjestu" i "otvoreni kod", ali tiho prenosi podatke na više usluga trećih strana — analitika (PostHog), telemetrija (Honeycomb), dijeljenje sesija (opncd.ai), proksiranje promptova (opencode.ai/zen), preusmjeravanje pretraživanja (mcp.exa.ai), i preuzimanje liste modela koje izlažu IP (models.dev). Održavatelji su prvotno negirali postojanje telemetrije ([#459](https://github.com/sst/opencode/issues/459)), a zatim su je priznali. Korisnici izvještavaju da onemogućavanje telemetrije u konfiguraciji ne zaustavlja potpuno izlazne veze ([#5554](https://github.com/sst/opencode/issues/5554)). -### Instalacija +Rolandcode se ne trudi uvjeriti OpenCode da se promijeni. Jednostavno uklanja njihovu telemetriju i dostavlja čiste buildove. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Package manageri -npm i -g opencode-ai@latest # ili bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS i Linux (preporučeno, uvijek ažurno) -brew install opencode # macOS i Linux (zvanična brew formula, rjeđe se ažurira) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # Bilo koji OS -nix run nixpkgs#opencode # ili github:anomalyco/opencode za najnoviji dev branch -``` +Ime je iz Browningovog djela *Childe Roland to the Dark Tower Came* — Roland dolazi do tornja uprkos svemu što pokušava zaustaviti ga. + +--- + +## Šta je uklonjeno -> [!TIP] -> Ukloni verzije starije od 0.1.x prije instalacije. +| Endpoint | Šta je slao | +|----------|-------------| +| `us.i.posthog.com` | Analitika korištenja | +| `api.honeycomb.io` | Telemetrija, IP adresa, lokacija | +| `api.opencode.ai` | Sadržaj sesije, promptovi | +| `opncd.ai` | Podaci za dijeljenje sesija | +| `opencode.ai/zen/v1` | Promptovi proksirani kroz OpenCode-ov gateway | +| `mcp.exa.ai` | Upiti za pretraživanje | +| `models.dev` | Preuzimanje liste modela (izlaže IP) | +| `app.opencode.ai` | Proxy za svaku aplikaciju (catch-all) | -### Desktop aplikacija (BETA) +Katalog modela se uključuje u build u vrijeme izgradnje iz lokalnog snapshota — nema phone-home tijekom izvršavanja. -OpenCode je dostupan i kao desktop aplikacija. Preuzmi je direktno sa [stranice izdanja](https://github.com/anomalyco/opencode/releases) ili sa [opencode.ai/download](https://opencode.ai/download). +## Instalacija -| Platforma | Preuzimanje | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, ili AppImage | +Preuzmi binarnu datoteku sa [stranice izdanja](https://github.com/TODO/rolandcode/releases), ili sastavi iz izvora: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Download a model catalog snapshot +curl -fsSL -o models-api.json https://models.dev/api.json + +# Build +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Instalacijski direktorij +Binarna datoteka je na `dist/opencode-linux-x64/bin/rolandcode` (ili ekvivalent za vašu platformu). -Instalacijska skripta koristi sljedeći redoslijed prioriteta za putanju instalacije: +## Verifikacija -1. `$OPENCODE_INSTALL_DIR` - Prilagođeni instalacijski direktorij -2. `$XDG_BIN_DIR` - Putanja usklađena sa XDG Base Directory specifikacijom -3. `$HOME/bin` - Standardni korisnički bin direktorij (ako postoji ili se može kreirati) -4. `$HOME/.opencode/bin` - Podrazumijevana rezervna lokacija +Svaki build se može provjeriti kao čist: ```bash -# Primjeri -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agenti +Ovo grepa cijelo stablo izvora za sve poznate domene telemetrije i pakete SDK-a. Ako ostane bilo kakva referenca, build neuspjeva. Grep ne laže. -OpenCode uključuje dva ugrađena agenta između kojih možeš prebacivati tasterom `Tab`. +## Kako radi -- **build** - Podrazumijevani agent sa punim pristupom za razvoj -- **plan** - Agent samo za čitanje za analizu i istraživanje koda - - Podrazumijevano zabranjuje izmjene datoteka - - Traži dozvolu prije pokretanja bash komandi - - Idealan za istraživanje nepoznatih codebase-ova ili planiranje izmjena +Rolandcode održava mali skup patcheva preko originalnog OpenCode-a. Svaki commit za uklanjanje uklanja jednu zabrinutost vezanu za telemetriju: -Uključen je i **general** pod-agent za složene pretrage i višekoračne zadatke. -Koristi se interno i može se pozvati pomoću `@general` u porukama. +- `strip-posthog` — PostHog analitika +- `strip-honeycomb` — Honeycomb telemetrija +- `strip-exa` — Preusmjeravanje pretraživanja mcp.exa.ai +- `strip-opencode-api` — Endpointi api.opencode.ai i opncd.ai +- `strip-zen-gateway` — Usmeravanje Zen proxyja +- `strip-app-proxy` — Catch-all proxy app.opencode.ai +- `strip-share-sync` — Automatsko dijeljenje sesija +- `strip-models-dev` — Preuzimanje liste modela tijekom izvršavanja -Saznaj više o [agentima](https://opencode.ai/docs/agents). +Mali, izolirani commitovi se čisto rebaseuju kada se upstream pomjeri. -### Dokumentacija +## Testiranje -Za više informacija o konfiguraciji OpenCode-a, [**pogledaj dokumentaciju**](https://opencode.ai/docs). - -### Doprinosi +```bash +# Full suite (runs permission tests in Docker when running as root) +bash scripts/test.sh -Ako želiš doprinositi OpenCode-u, pročitaj [upute za doprinošenje](./CONTRIBUTING.md) prije slanja pull requesta. +# Just the main suite +cd packages/opencode && bun test --timeout 30000 -### Gradnja na OpenCode-u +# Just the permission tests (must be non-root, or use Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Ako radiš na projektu koji je povezan s OpenCode-om i koristi "opencode" kao dio naziva, npr. "opencode-dashboard" ili "opencode-mobile", dodaj napomenu u svoj README da projekat nije napravio OpenCode tim i da nije povezan s nama. +### Poznati problemi s testovima -### FAQ +| Test | Status | Zašto | +|------|--------|-------| +| `session.llm.stream` (2 od 10) | Nestabilan | Stanje mock HTTP servera curi između paralelnih testova. Prođe 10/10 kada se pokrene izolirano (`bun test test/session/llm.test.ts`). Bug izolacije testova upstream-a — ne je greška u kodu. | +| `tool.write > throws error when OS denies write access` | Neuspjeva kao root | Root zaobilazi `chmod 0o444`. Prođe u Dockeru kao non-root. `scripts/test.sh` ovo automatski obrađuje. | +| `tui config > continues loading when legacy source cannot be stripped` | Neuspjeva kao root | Ista root-vs-chmod situacija. Prođe u Dockeru kao non-root. | +| `fsmonitor` (2 testa) | Preskočeno | Samo za Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Preskočeno | Samo za Windows. | +| `unicode filenames modification and restore` | Preskočeno | Upstream eksplicitno preskočeno — poznati bug koji nisu popravili. | -#### Po čemu se razlikuje od Claude Code-a? +## Upstream -Po mogućnostima je vrlo sličan Claude Code-u. Ključne razlike su: +Ovo je fork projekta [anomalyco/opencode](https://github.com/anomalyco/opencode) (MIT licenca). Svi originalni kodovi su njihovi. Cijela povijest commitova upstream-a je sačuvana — možete vidjeti tačno šta je promijenjeno i zašto. -- 100% open source -- Nije vezan za jednog provajdera. Iako preporučujemo modele koje nudimo kroz [OpenCode Zen](https://opencode.ai/zen), OpenCode možeš koristiti s Claude, OpenAI, Google ili čak lokalnim modelima. Kako modeli napreduju, razlike među njima će se smanjivati, a cijene padati, zato je nezavisnost od provajdera važna. -- LSP podrška odmah po instalaciji -- Fokus na TUI. OpenCode grade neovim korisnici i kreatori [terminal.shop](https://terminal.shop); pomjeraćemo granice onoga što je moguće u terminalu. -- Klijent/server arhitektura. To, recimo, omogućava da OpenCode radi na tvom računaru dok ga daljinski koristiš iz mobilne aplikacije, što znači da je TUI frontend samo jedan od mogućih klijenata. +OpenCode je sposoban AI agent za kodiranje s odličnim TUI-om, podrškom LSP i fleksibilnošću više provajdera. Koristimo ga jer je dobar softver. Uklanjamo telemetriju jer tvrdnje o privatnosti ne odgovaraju ponašanju. ---- +## Licenca -**Pridruži se našoj zajednici** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — isto kao upstream. Pogledajte [LICENSE](LICENSE). diff --git a/README.da.md b/README.da.md index ac522f29c4..977671e737 100644 --- a/README.da.md +++ b/README.da.md @@ -1,18 +1,4 @@ -
-
-
-
Den open source AI-kodeagent.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Een schone fork van [OpenCode](https://github.com/anomalyco/opencode) waarbij alle telemetrie en 'phone-home'-gedrag is verwijderd. ---- +OpenCode presenteert zich als "privacy-voorop" en "open source", maar verzendt gegevens stilzwijgend naar meerdere externe diensten — analyse (PostHog), telemetrie (Honeycomb), sessiedeling (opncd.ai), prompt-proxying (opencode.ai/zen), doorsturen van zoekopdrachten (mcp.exa.ai), en ophalen van modellijsten die IP-adressen lekken (models.dev). De onderhouders ontkenden aanvankelijk dat telemetrie bestond ([#459](https://github.com/sst/opencode/issues/459)), maar erkenden het later. Gebruikers melden dat het uitschakelen van telemetrie in de configuratie uitgaande verbindingen niet volledig stopt ([#5554](https://github.com/sst/opencode/issues/5554)). -### Installation +Rolandcode probeert OpenCode niet te overtuigen om te veranderen. Het verwijdert gewoon hun telemetrie en levert schone builds. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Pakkehåndteringer -npm i -g opencode-ai@latest # eller bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS og Linux (anbefalet, altid up to date) -brew install opencode # macOS og Linux (officiel brew formula, opdateres sjældnere) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # alle OS -nix run nixpkgs#opencode # eller github:anomalyco/opencode for nyeste dev-branch -``` +De naam is afkomstig uit Browning's *Childe Roland to the Dark Tower Came* — Roland bereikt de toren ondanks alles wat hem probeert tegen te houden. + +--- + +## Wat is verwijderd -> [!TIP] -> Fjern versioner ældre end 0.1.x før installation. +| Endpoint | Wat het verzond | +|----------|-------------| +| `us.i.posthog.com` | Gebruiksanalyse | +| `api.honeycomb.io` | Telemetrie, IP-adres, locatie | +| `api.opencode.ai` | Sessie-inhoud, prompts | +| `opncd.ai` | Sessiedelingsgegevens | +| `opencode.ai/zen/v1` | Prompts die via OpenCode's gateway worden geproxyd | +| `mcp.exa.ai` | Zoekopdrachten | +| `models.dev` | Ophalen van modellijsten (lekken IP) | +| `app.opencode.ai` | Alles-omvattende app-proxy | -### Desktop-app (BETA) +De modelcatalogus is tijdens de build ingebouwd vanuit een lokale snapshot — geen 'phone-home' tijdens runtime. -OpenCode findes også som desktop-app. Download direkte fra [releases-siden](https://github.com/anomalyco/opencode/releases) eller [opencode.ai/download](https://opencode.ai/download). +## Installatie -| Platform | Download | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, eller AppImage | +Download een binary van de [releases-pagina](https://github.com/TODO/rolandcode/releases), of bouw vanuit broncode: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Download een snapshot van de modelcatalogus +curl -fsSL -o models-api.json https://models.dev/api.json + +# Bouwen +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Installationsmappe +De binary staat in `dist/opencode-linux-x64/bin/rolandcode` (of het equivalent voor uw platform). -Installationsscriptet bruger følgende prioriteringsrækkefølge for installationsstien: +## Verificatie -1. `$OPENCODE_INSTALL_DIR` - Tilpasset installationsmappe -2. `$XDG_BIN_DIR` - Sti der følger XDG Base Directory Specification -3. `$HOME/bin` - Standard bruger-bin-mappe (hvis den findes eller kan oprettes) -4. `$HOME/.opencode/bin` - Standard fallback +Elke build kan als schoon worden geverifieerd: ```bash -# Eksempler -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Dit 'grept' de gehele broncodeboom op alle bekende telemetrie-domeinen en SDK-pakketten. Als er referenties overblijven, faalt de build. Grep liegt niet. -OpenCode har to indbyggede agents, som du kan skifte mellem med `Tab`-tasten. +## Hoe het werkt -- **build** - Standard, agent med fuld adgang til udviklingsarbejde -- **plan** - Skrivebeskyttet agent til analyse og kodeudforskning - - Afviser filredigering som standard - - Spørger om tilladelse før bash-kommandoer - - Ideel til at udforske ukendte kodebaser eller planlægge ændringer +Rolandcode onderhoudt een kleine patchset bovenop upstream OpenCode. Elke 'strip'-commit verwijdert één telemetrie-zaak: -Derudover findes der en **general**-subagent til komplekse søgninger og flertrinsopgaver. -Den bruges internt og kan kaldes via `@general` i beskeder. +- `strip-posthog` — PostHog-analyse +- `strip-honeycomb` — Honeycomb-telemetrie +- `strip-exa` — mcp.exa.ai zoekopdracht-doorsturing +- `strip-opencode-api` — api.opencode.ai en opncd.ai endpoints +- `strip-zen-gateway` — Zen proxy routing +- `strip-app-proxy` — app.opencode.ai alles-omvattende proxy +- `strip-share-sync` — Automatische sessiedeling +- `strip-models-dev` — Runtime ophalen van modellijst -Læs mere om [agents](https://opencode.ai/docs/agents). +Kleine, geïsoleerde commits rebaseen zonder problemen wanneer upstream wordt bijgewerkt. -### Dokumentation +## Testen -For mere info om konfiguration af OpenCode, [**se vores docs**](https://opencode.ai/docs). - -### Bidrag +```bash +# Volledige suite (draait machtigingstests in Docker bij uitvoering als root) +bash scripts/test.sh -Hvis du vil bidrage til OpenCode, så læs vores [contributing docs](./CONTRIBUTING.md) før du sender en pull request. +# Alleen de hoofd suite +cd packages/opencode && bun test --timeout 30000 -### Bygget på OpenCode +# Alleen de machtigingstests (moet niet-root zijn, of gebruik Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Hvis du arbejder på et projekt der er relateret til OpenCode og bruger "opencode" som en del af navnet; f.eks. "opencode-dashboard" eller "opencode-mobile", så tilføj en note i din README, der tydeliggør at projektet ikke er bygget af OpenCode-teamet og ikke er tilknyttet os på nogen måde. +### Bekende testproblemen -### FAQ +| Test | Status | Reden | +|------|--------|-----| +| `session.llm.stream` (2 van 10) | Onstabiel | De status van de mock HTTP-server lekt tussen parallelle tests. Lukt 10/10 wanneer geïsoleerd gedraaid (`bun test test/session/llm.test.ts`). Upstream test-isolatie bug — geen code-defect. | +| `tool.write > throws error when OS denies write access` | Faalt als root | Root omzeilt `chmod 0o444`. Lukt in Docker als niet-root. `scripts/test.sh` behandelt dit automatisch. | +| `tui config > continues loading when legacy source cannot be stripped` | Faalt als root | Zelfde root-vs-chmod probleem. Lukt in Docker als niet-root. | +| `fsmonitor` (2 tests) | Overslagen | Alleen voor Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Overslagen | Alleen voor Windows. | +| `unicode filenames modification and restore` | Overslagen | Upstream expliciet overgeslagen — bekende bug die ze niet hebben opgelost. | -#### Hvordan adskiller dette sig fra Claude Code? +## Upstream -Det minder meget om Claude Code i forhold til funktionalitet. Her er de vigtigste forskelle: +Dit is een fork van [anomalyco/opencode](https://github.com/anomalyco/opencode) (MIT-licentie). Alle originele code is van hen. De volledige upstream commit-historie is behouden — je kunt precies zien wat er is veranderd en waarom. -- 100% open source -- Ikke låst til en udbyder. Selvom vi anbefaler modellerne via [OpenCode Zen](https://opencode.ai/zen); kan OpenCode bruges med Claude, OpenAI, Google eller endda lokale modeller. Efterhånden som modeller udvikler sig vil forskellene mindskes og priserne falde, så det er vigtigt at være provider-agnostic. -- LSP-support out of the box -- Fokus på TUI. OpenCode er bygget af neovim-brugere og skaberne af [terminal.shop](https://terminal.shop); vi vil skubbe grænserne for hvad der er muligt i terminalen. -- Klient/server-arkitektur. Det kan f.eks. lade OpenCode køre på din computer, mens du styrer den eksternt fra en mobilapp. Det betyder at TUI-frontend'en kun er en af de mulige clients. +OpenCode is een capabele AI-codeeragent met een geweldige TUI, LSP-ondersteuning en flexibiliteit voor meerdere providers. We gebruiken het omdat het goede software is. We verwijderen de telemetrie omdat de privacy-claims niet overeenkomen met het gedrag. ---- +## Licentie -**Bliv en del af vores community** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — hetzelfde als upstream. Zie [LICENSE](LICENSE). diff --git a/README.de.md b/README.de.md index 87a670f3fc..4e47b17cea 100644 --- a/README.de.md +++ b/README.de.md @@ -1,18 +1,4 @@ -
-
-
-
Der Open-Source KI-Coding-Agent.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Eine saubere Fork von [OpenCode](https://github.com/anomalyco/opencode), bei der alle Telemetrie und Rückrufverhalten entfernt wurden. ---- +OpenCode wirbt mit „Datenschutz vorneweg" und „Quellcode offen", übermittelt aber stillschweigend Daten an mehrere Dienste Dritter — Analyse (PostHog), Telemetrie (Honeycomb), Sitzungsteilung (opncd.ai), Prompt-Weiterleitung (opencode.ai/zen), Weiterleitung von Suchanfragen (mcp.exa.ai) und Abrufe der Modellliste, die IP-Adressen preisgeben (models.dev). Die Maintainer bestritten zunächst, dass Telemetrie existierte ([#459](https://github.com/sst/opencode/issues/459)), erkannten es dann an. Benutzer berichten, dass das Deaktivieren der Telemetrie in der Konfiguration ausgehende Verbindungen nicht vollständig stoppt ([#5554](https://github.com/sst/opencode/issues/5554)). -### Installation +Rolandcode versucht nicht, OpenCode zur Änderung zu bewegen. Es entfernt einfach deren Telemetrie und liefert saubere Builds aus. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Paketmanager -npm i -g opencode-ai@latest # oder bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS und Linux (empfohlen, immer aktuell) -brew install opencode # macOS und Linux (offizielle Brew-Formula, seltener aktualisiert) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # jedes Betriebssystem -nix run nixpkgs#opencode # oder github:anomalyco/opencode für den neuesten dev-Branch -``` +Der Name stammt aus Brownings *Childe Roland to the Dark Tower Came* — Roland erreicht den Turm trotz allem, was ihn aufhalten will. + +--- + +## Was entfernt wurde -> [!TIP] -> Entferne Versionen älter als 0.1.x vor der Installation. +| Endpunkt | Was gesendet wurde | +|----------|-------------| +| `us.i.posthog.com` | Nutzungsanalyse | +| `api.honeycomb.io` | Telemetrie, IP-Adresse, Standort | +| `api.opencode.ai` | Sitzungsinhalt, Prompts | +| `opncd.ai` | Daten zur Sitzungsteilung | +| `opencode.ai/zen/v1` | Prompts, die durch OpenCodes Gateway weitergeleitet wurden | +| `mcp.exa.ai` | Suchanfragen | +| `models.dev` | Abrufe der Modellliste (preisgibt IP) | +| `app.opencode.ai` | Auffang-App-Proxy | -### Desktop-App (BETA) +Der Modellkatalog wird zum Build-Zeitpunkt aus einem lokalen Snapshot eingebunden — kein Rückruf zur Laufzeit. -OpenCode ist auch als Desktop-Anwendung verfügbar. Lade sie direkt von der [Releases-Seite](https://github.com/anomalyco/opencode/releases) oder [opencode.ai/download](https://opencode.ai/download) herunter. +## Installation -| Plattform | Download | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` oder AppImage | +Lade eine Binärdatei von der [Releases-Seite](https://github.com/TODO/rolandcode/releases) herunter, oder baue aus dem Quellcode: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Lade einen Snapshot des Modellkatalogs herunter +curl -fsSL -o models-api.json https://models.dev/api.json + +# Build +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Installationsverzeichnis +Die Binärdatei befindet sich unter `dist/opencode-linux-x64/bin/rolandcode` (oder das Äquivalent für deine Plattform). -Das Installationsskript beachtet die folgende Prioritätsreihenfolge für den Installationspfad: +## Verifizierung -1. `$OPENCODE_INSTALL_DIR` - Benutzerdefiniertes Installationsverzeichnis -2. `$XDG_BIN_DIR` - XDG Base Directory Specification-konformer Pfad -3. `$HOME/bin` - Standard-Binärverzeichnis des Users (falls vorhanden oder erstellbar) -4. `$HOME/.opencode/bin` - Standard-Fallback +Jeder Build kann auf Sauberkeit überprüft werden: ```bash -# Beispiele -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Dies durchsucht den gesamten Quellbaum nach allen bekannten Telemetrie-Domains und SDK-Paketen. Wenn eine Referenz verbleibt, schlägt der Build fehl. Grep lügt nicht. -OpenCode enthält zwei eingebaute Agents, zwischen denen du mit der `Tab`-Taste wechseln kannst. +## Wie es funktioniert -- **build** - Standard-Agent mit vollem Zugriff für Entwicklungsarbeit -- **plan** - Nur-Lese-Agent für Analyse und Code-Exploration - - Verweigert Datei-Edits standardmäßig - - Fragt vor dem Ausführen von bash-Befehlen nach - - Ideal zum Erkunden unbekannter Codebases oder zum Planen von Änderungen +Rolandcode pflegt einen kleinen Patch-Satz auf dem Upstream OpenCode. Jeder Strip-Commit entfernt eine Telemetrie-Komponente: -Außerdem ist ein **general**-Subagent für komplexe Suchen und mehrstufige Aufgaben enthalten. -Dieser wird intern genutzt und kann in Nachrichten mit `@general` aufgerufen werden. +- `strip-posthog` — PostHog-Analyse +- `strip-honeycomb` — Honeycomb-Telemetrie +- `strip-exa` — mcp.exa.ai Suchweiterleitung +- `strip-opencode-api` — api.opencode.ai und opncd.ai Endpunkte +- `strip-zen-gateway` — Zen-Proxy-Routing +- `strip-app-proxy` — app.opencode.ai Auffang-Proxy +- `strip-share-sync` — Automatische Sitzungsteilung +- `strip-models-dev` — Abruf der Modellliste zur Laufzeit -Mehr dazu unter [Agents](https://opencode.ai/docs/agents). +Kleine, isolierte Commits rebasen sauber, wenn sich das Upstream bewegt. -### Dokumentation +## Tests -Mehr Infos zur Konfiguration von OpenCode findest du in unseren [**Docs**](https://opencode.ai/docs). - -### Beitragen +```bash +# Vollständige Suite (führt Berechtigungstests in Docker aus, wenn als root ausgeführt) +bash scripts/test.sh -Wenn du zu OpenCode beitragen möchtest, lies bitte unsere [Contributing Docs](./CONTRIBUTING.md), bevor du einen Pull Request einreichst. +# Nur die Hauptsuite +cd packages/opencode && bun test --timeout 30000 -### Auf OpenCode aufbauen +# Nur die Berechtigungstests (muss nicht-root sein, oder Docker verwenden) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Wenn du an einem Projekt arbeitest, das mit OpenCode zusammenhängt und "opencode" als Teil seines Namens verwendet (z.B. "opencode-dashboard" oder "opencode-mobile"), füge bitte einen Hinweis in deine README ein, dass es nicht vom OpenCode-Team gebaut wird und nicht in irgendeiner Weise mit uns verbunden ist. +### Bekannte Testprobleme -### FAQ +| Test | Status | Grund | +|------|--------|-----| +| `session.llm.stream` (2 von 10) | Instabil | Mock-HTTP-Server-Zustand leckt zwischen parallelen Tests. Bestätigt 10/10, wenn isoliert ausgeführt (`bun test test/session/llm.test.ts`). Upstream-Test-Isolierungsfehler — kein Code-Defekt. | +| `tool.write > wirft Fehler, wenn OS Schreibzugriff verweigert` | Scheitert als root | Root umgeht `chmod 0o444`. Bestätigt in Docker als nicht-root. `scripts/test.sh` behandelt dies automatisch. | +| `tui config > lädt weiter, wenn legacy-Quelle nicht entfernt werden kann` | Scheitert als root | Gleiche root-vs-chmod-Problematik. Bestätigt in Docker als nicht-root. | +| `fsmonitor` (2 Tests) | Übersprungen | Nur für Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 Test) | Übersprungen | Nur für Windows. | +| `unicode Dateinamen Änderung und Wiederherstellung` | Übersprungen | Upstream explizit übersprungen — bekannter Fehler, den sie nicht behoben haben. | -#### Worin unterscheidet sich das von Claude Code? +## Upstream -In Bezug auf die Fähigkeiten ist es Claude Code sehr ähnlich. Hier sind die wichtigsten Unterschiede: +Dies ist eine Fork von [anomalyco/opencode](https://github.com/anomalyco/opencode) (MIT-Lizenz). Der gesamte ursprüngliche Code gehört ihnen. Die vollständige Upstream-Commit-Historie wird erhalten — du kannst genau sehen, was geändert wurde und warum. -- 100% open source -- Nicht an einen Anbieter gekoppelt. Wir empfehlen die Modelle aus [OpenCode Zen](https://opencode.ai/zen); OpenCode kann aber auch mit Claude, OpenAI, Google oder sogar lokalen Modellen genutzt werden. Mit der Weiterentwicklung der Modelle werden die Unterschiede kleiner und die Preise sinken, deshalb ist Provider-Unabhängigkeit wichtig. -- LSP-Unterstützung direkt nach dem Start -- Fokus auf TUI. OpenCode wird von Neovim-Nutzern und den Machern von [terminal.shop](https://terminal.shop) gebaut; wir treiben die Grenzen dessen, was im Terminal möglich ist. -- Client/Server-Architektur. Das ermöglicht z.B., OpenCode auf deinem Computer laufen zu lassen, während du es von einer mobilen App aus fernsteuerst. Das TUI-Frontend ist nur einer der möglichen Clients. +OpenCode ist ein fähiger AI-Coding-Agent mit einer großartigen TUI, LSP-Unterstützung und Multi-Provider-Flexibilität. Wir verwenden ihn, weil es gute Software ist. Wir entfernen die Telemetrie, weil die Datenschutzbehauptungen nicht mit dem Verhalten übereinstimmen. ---- +## Lizenz -**Tritt unserer Community bei** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — wie beim Upstream. Siehe [LICENSE](LICENSE). diff --git a/README.es.md b/README.es.md index 9e456af1c0..1505b91ea2 100644 --- a/README.es.md +++ b/README.es.md @@ -1,18 +1,4 @@ -
-
-
-
El agente de programación con IA de código abierto.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Un fork limpio de [OpenCode](https://github.com/anomalyco/opencode) con todo el comportamiento de telemetría y "phone-home" eliminado. ---- +OpenCode se promociona como "privacidad primero" y "código abierto", pero transmite datos silenciosamente a múltiples servicios de terceros: analítica (PostHog), telemetría (Honeycomb), compartición de sesiones (opncd.ai), proxificación de prompts (opencode.ai/zen), reenvío de consultas de búsqueda (mcp.exa.ai) y obtención de listas de modelos que filtran la IP (models.dev). Los mantenedores inicialmente negaron que existiera telemetría ([#459](https://github.com/sst/opencode/issues/459)), luego lo reconocieron. Los usuarios reportan que deshabilitar la telemetría en la configuración no detiene completamente las conexiones salientes ([#5554](https://github.com/sst/opencode/issues/5554)). -### Instalación +Rolandcode no intenta convencer a OpenCode para que cambie. Simplemente elimina su telemetría y entrega construcciones limpias. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Gestores de paquetes -npm i -g opencode-ai@latest # o bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS y Linux (recomendado, siempre al día) -brew install opencode # macOS y Linux (fórmula oficial de brew, se actualiza menos) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # cualquier sistema -nix run nixpkgs#opencode # o github:anomalyco/opencode para la rama dev más reciente -``` +El nombre proviene de *Childe Roland llegó a la Torre Oscura* de Browning: Roland alcanza la torre a pesar de todo lo que intenta detenerlo. + +--- + +## Qué se eliminó -> [!TIP] -> Elimina versiones anteriores a 0.1.x antes de instalar. +| Endpoint | Qué envió | +|----------|-----------| +| `us.i.posthog.com` | Analítica de uso | +| `api.honeycomb.io` | Telemetría, dirección IP, ubicación | +| `api.opencode.ai` | Contenido de sesión, prompts | +| `opncd.ai` | Datos de compartición de sesión | +| `opencode.ai/zen/v1` | Prompts proxificados a través de la pasarela de OpenCode | +| `mcp.exa.ai` | Consultas de búsqueda | +| `models.dev` | Obtención de listas de modelos (filtra IP) | +| `app.opencode.ai` | Proxy de aplicación general (catch-all) | -### App de escritorio (BETA) +El catálogo de modelos se incluye en el momento de la construcción desde una instantánea local; no hay comunicación con el servidor en tiempo de ejecución. -OpenCode también está disponible como aplicación de escritorio. Descárgala directamente desde la [página de releases](https://github.com/anomalyco/opencode/releases) o desde [opencode.ai/download](https://opencode.ai/download). +## Instalación -| Plataforma | Descarga | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, o AppImage | +Descarga un binario de la [página de lanzamientos](https://github.com/TODO/rolandcode/releases), o construye desde el código fuente: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Descargar una instantánea del catálogo de modelos +curl -fsSL -o models-api.json https://models.dev/api.json + +# Construir +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Directorio de instalación +El binario está en `dist/opencode-linux-x64/bin/rolandcode` (o el equivalente para tu plataforma). -El script de instalación respeta el siguiente orden de prioridad para la ruta de instalación: +## Verificación -1. `$OPENCODE_INSTALL_DIR` - Directorio de instalación personalizado -2. `$XDG_BIN_DIR` - Ruta compatible con la especificación XDG Base Directory -3. `$HOME/bin` - Directorio binario estándar del usuario (si existe o se puede crear) -4. `$HOME/.opencode/bin` - Alternativa por defecto +Cada construcción puede verificarse como limpia: ```bash -# Ejemplos -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Esto busca en todo el árbol de código fuente todos los dominios de telemetría conocidos y paquetes de SDK. Si queda alguna referencia, la construcción falla. Grep no miente. -OpenCode incluye dos agents integrados que puedes alternar con la tecla `Tab`. +## Cómo funciona -- **build** - Por defecto, agent con acceso completo para trabajo de desarrollo -- **plan** - Agent de solo lectura para análisis y exploración de código - - Niega ediciones de archivos por defecto - - Pide permiso antes de ejecutar comandos bash - - Ideal para explorar codebases desconocidas o planificar cambios +Rolandcode mantiene un pequeño conjunto de parches sobre el upstream de OpenCode. Cada commit de eliminación quita una preocupación de telemetría: -Además, incluye un subagent **general** para búsquedas complejas y tareas de varios pasos. -Se usa internamente y se puede invocar con `@general` en los mensajes. +- `strip-posthog` — Analítica de PostHog +- `strip-honeycomb` — Telemetría de Honeycomb +- `strip-exa` — Reenvío de búsqueda mcp.exa.ai +- `strip-opencode-api` — Endpoints de api.opencode.ai y opncd.ai +- `strip-zen-gateway` — Enrutamiento de proxy Zen +- `strip-app-proxy` — Proxy general de app.opencode.ai +- `strip-share-sync` — Compartición automática de sesiones +- `strip-models-dev` — Obtención de listas de modelos en tiempo de ejecución -Más información sobre [agents](https://opencode.ai/docs/agents). +Commits pequeños e aislados se reintegran limpiamente cuando el upstream avanza. -### Documentación +## Pruebas -Para más información sobre cómo configurar OpenCode, [**ve a nuestra documentación**](https://opencode.ai/docs). - -### Contribuir +```bash +# Suite completa (ejecuta pruebas de permisos en Docker cuando se ejecuta como root) +bash scripts/test.sh -Si te interesa contribuir a OpenCode, lee nuestras [docs de contribución](./CONTRIBUTING.md) antes de enviar un pull request. +# Solo la suite principal +cd packages/opencode && bun test --timeout 30000 -### Construyendo sobre OpenCode +# Solo las pruebas de permisos (debe ser no-root, o usar Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Si estás trabajando en un proyecto relacionado con OpenCode y usas "opencode" como parte del nombre; por ejemplo, "opencode-dashboard" u "opencode-mobile", agrega una nota en tu README para aclarar que no está construido por el equipo de OpenCode y que no está afiliado con nosotros de ninguna manera. +### Problemas conocidos de pruebas -### FAQ +| Prueba | Estado | Razón | +|--------|--------|-------| +| `session.llm.stream` (2 de 10) | Inestable | El estado del servidor HTTP simulado se filtra entre pruebas paralelas. Pasa 10/10 cuando se ejecuta en aislamiento (`bun test test/session/llm.test.ts`). Bug de aislamiento de pruebas del upstream — no un defecto de código. | +| `tool.write > lanza error cuando el OS deniega acceso de escritura` | Falla como root | Root evade `chmod 0o444`. Pasa en Docker como no-root. `scripts/test.sh` maneja esto automáticamente. | +| `tui config > continúa cargando cuando la fuente legada no puede eliminarse` | Falla como root | Mismo problema root-vs-chmod. Pasa en Docker como no-root. | +| `fsmonitor` (2 pruebas) | Omitido | Solo Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 prueba) | Omitido | Solo Windows. | +| `modificación y restauración de nombres de archivos unicode` | Omitido | El upstream lo omitió explícitamente — bug conocido que no han arreglado. | -#### ¿En qué se diferencia de Claude Code? +## Origen -Es muy similar a Claude Code en cuanto a capacidades. Estas son las diferencias clave: +Este es un fork de [anomalyco/opencode](https://github.com/anomalyco/opencode) (licencia MIT). Todo el código original es de ellos. Se preserva el historial completo de commits del upstream; puedes ver exactamente qué se cambió y por qué. -- 100% open source -- No está acoplado a ningún proveedor. Aunque recomendamos los modelos que ofrecemos a través de [OpenCode Zen](https://opencode.ai/zen); OpenCode se puede usar con Claude, OpenAI, Google o incluso modelos locales. A medida que evolucionan los modelos, las brechas se cerrarán y los precios bajarán, por lo que ser agnóstico al proveedor es importante. -- Soporte LSP listo para usar -- Un enfoque en la TUI. OpenCode está construido por usuarios de neovim y los creadores de [terminal.shop](https://terminal.shop); vamos a empujar los límites de lo que es posible en la terminal. -- Arquitectura cliente/servidor. Esto, por ejemplo, permite ejecutar OpenCode en tu computadora mientras lo controlas de forma remota desde una app móvil. Esto significa que el frontend TUI es solo uno de los posibles clientes. +OpenCode es un agente de codificación AI capaz con una excelente TUI, soporte LSP y flexibilidad multi-proveedor. Lo usamos porque es buen software. Eliminamos la telemetría porque las afirmaciones de privacidad no coinciden con el comportamiento. ---- +## Licencia -**Únete a nuestra comunidad** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — igual que el upstream. Ver [LICENSE](LICENSE). diff --git a/README.fr.md b/README.fr.md index c1fca23376..b3aeaa7007 100644 --- a/README.fr.md +++ b/README.fr.md @@ -1,18 +1,4 @@ -
-
-
-
L'agent de codage IA open source.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Une fourche épurée de [OpenCode](https://github.com/anomalyco/opencode) avec toute télémétrie et tout comportement de 'phone-home' supprimés. ---- +OpenCode se présente comme 'priorité à la vie privée' et 'open source', mais transmet silencieusement des données à plusieurs services tiers — analyses (PostHog), télémétrie (Honeycomb), partage de session (opncd.ai), proxification de prompts (opencode.ai/zen), transfert de requêtes de recherche (mcp.exa.ai), et récupérations de listes de modèles divulguant l'IP (models.dev). Les mainteneurs ont initialement nié l'existence de la télémétrie ([#459](https://github.com/sst/opencode/issues/459)), puis l'ont reconnue. Les utilisateurs rapportent que désactiver la télémétrie dans la configuration n'arrête pas complètement les connexions sortantes ([#5554](https://github.com/sst/opencode/issues/5554)). -### Installation +Rolandcode ne tente pas de convaincre OpenCode de changer. Il supprime simplement leur télémétrie et fournit des compilations épurées. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Gestionnaires de paquets -npm i -g opencode-ai@latest # ou bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS et Linux (recommandé, toujours à jour) -brew install opencode # macOS et Linux (formule officielle brew, mise à jour moins fréquente) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # n'importe quel OS -nix run nixpkgs#opencode # ou github:anomalyco/opencode pour la branche dev la plus récente -``` +Le nom provient de *Childe Roland to the Dark Tower Came* de Browning — Roland atteint la tour malgré tout ce qui tente de l'arrêter. + +--- + +## Ce qui est supprimé -> [!TIP] -> Supprimez les versions antérieures à 0.1.x avant d'installer. +| Point de terminaison | Ce qu'il envoyait | +|----------|-------------| +| `us.i.posthog.com` | Analyses d'utilisation | +| `api.honeycomb.io` | Télémétrie, adresse IP, localisation | +| `api.opencode.ai` | Contenu de session, prompts | +| `opncd.ai` | Données de partage de session | +| `opencode.ai/zen/v1` | Prompts proxifiés via la passerelle d'OpenCode | +| `mcp.exa.ai` | Requêtes de recherche | +| `models.dev` | Récupérations de liste de modèles (divulgue l'IP) | +| `app.opencode.ai` | Proxy d'application universel | -### Application de bureau (BETA) +Le catalogue de modèles est intégré au moment de la compilation à partir d'un instantané local — pas de 'phone-home' à l'exécution. -OpenCode est aussi disponible en application de bureau. Téléchargez-la directement depuis la [page des releases](https://github.com/anomalyco/opencode/releases) ou [opencode.ai/download](https://opencode.ai/download). +## Installation -| Plateforme | Téléchargement | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, ou AppImage | +Téléchargez un binaire depuis la [page des versions](https://github.com/TODO/rolandcode/releases), ou compilez à partir de la source : ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Téléchargez un instantané du catalogue de modèles +curl -fsSL -o models-api.json https://models.dev/api.json + +# Compilez +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Répertoire d'installation +Le binaire se trouve à `dist/opencode-linux-x64/bin/rolandcode` (ou l'équivalent pour votre plateforme). -Le script d'installation respecte l'ordre de priorité suivant pour le chemin d'installation : +## Vérification -1. `$OPENCODE_INSTALL_DIR` - Répertoire d'installation personnalisé -2. `$XDG_BIN_DIR` - Chemin conforme à la spécification XDG Base Directory -3. `$HOME/bin` - Répertoire binaire utilisateur standard (s'il existe ou peut être créé) -4. `$HOME/.opencode/bin` - Repli par défaut +Chaque compilation peut être vérifiée comme épurée : ```bash -# Exemples -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Cela utilise grep sur tout l'arbre de source pour tous les domaines de télémétrie connus et les packages SDK. Si une référence subsiste, la compilation échoue. Grep ne ment pas. -OpenCode inclut deux agents intégrés que vous pouvez basculer avec la touche `Tab`. +## Comment ça fonctionne -- **build** - Par défaut, agent avec accès complet pour le travail de développement -- **plan** - Agent en lecture seule pour l'analyse et l'exploration du code - - Refuse les modifications de fichiers par défaut - - Demande l'autorisation avant d'exécuter des commandes bash - - Idéal pour explorer une base de code inconnue ou planifier des changements +Rolandcode maintient un petit ensemble de correctifs au-dessus de l'amont OpenCode. Chaque commit de suppression élimine une préoccupation de télémétrie : -Un sous-agent **general** est aussi inclus pour les recherches complexes et les tâches en plusieurs étapes. -Il est utilisé en interne et peut être invoqué via `@general` dans les messages. +- `strip-posthog` — Analyses PostHog +- `strip-honeycomb` — Télémétrie Honeycomb +- `strip-exa` — Transfert de recherche mcp.exa.ai +- `strip-opencode-api` — Points de terminaison api.opencode.ai et opncd.ai +- `strip-zen-gateway` — Routage du proxy Zen +- `strip-app-proxy` — Proxy universel app.opencode.ai +- `strip-share-sync` — Partage automatique de session +- `strip-models-dev` — Récupération de liste de modèles à l'exécution -En savoir plus sur les [agents](https://opencode.ai/docs/agents). +Les petits commits isolés se rebasent proprement lorsque l'amont évolue. -### Documentation +## Tests -Pour plus d'informations sur la configuration d'OpenCode, [**consultez notre documentation**](https://opencode.ai/docs). - -### Contribuer +```bash +# Suite complète (exécute les tests de permissions dans Docker lorsqu'exécuté en tant que root) +bash scripts/test.sh -Si vous souhaitez contribuer à OpenCode, lisez nos [docs de contribution](./CONTRIBUTING.md) avant de soumettre une pull request. +# Juste la suite principale +cd packages/opencode && bun test --timeout 30000 -### Construire avec OpenCode +# Juste les tests de permissions (doit être non-root, ou utiliser Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Si vous travaillez sur un projet lié à OpenCode et que vous utilisez "opencode" dans le nom du projet (par exemple, "opencode-dashboard" ou "opencode-mobile"), ajoutez une note dans votre README pour préciser qu'il n'est pas construit par l'équipe OpenCode et qu'il n'est pas affilié à nous. +### Problèmes de tests connus -### FAQ +| Test | Statut | Pourquoi | +|------|--------|-----| +| `session.llm.stream` (2 sur 10) | Inconstant | L'état du serveur HTTP simulé fuit entre les tests parallèles. Passe 10/10 lorsqu'exécuté en isolation (`bun test test/session/llm.test.ts`). Bug d'isolation de test amont — pas un défaut de code. | +| `tool.write > throws error when OS denies write access` | Échoue en tant que root | Root contourne `chmod 0o444`. Passe dans Docker en tant que non-root. `scripts/test.sh` gère cela automatiquement. | +| `tui config > continues loading when legacy source cannot be stripped` | Échoue en tant que root | Même problème root-vs-chmod. Passe dans Docker en tant que non-root. | +| `fsmonitor` (2 tests) | Ignoré | Windows uniquement (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Ignoré | Windows uniquement. | +| `unicode filenames modification and restore` | Ignoré | Explicitement ignoré par l'amont — bug connu qu'ils n'ont pas corrigé. | -#### En quoi est-ce différent de Claude Code ? +## Amont -C'est très similaire à Claude Code en termes de capacités. Voici les principales différences : +Ceci est une fourche de [anomalyco/opencode](https://github.com/anomalyco/opencode) (licence MIT). Tout le code original est le leur. L'historique complet des commits amont est préservé — vous pouvez voir exactement ce qui a été changé et pourquoi. -- 100% open source -- Pas couplé à un fournisseur. Nous recommandons les modèles proposés via [OpenCode Zen](https://opencode.ai/zen) ; OpenCode peut être utilisé avec Claude, OpenAI, Google ou même des modèles locaux. Au fur et à mesure que les modèles évoluent, les écarts se réduiront et les prix baisseront, donc être agnostique au fournisseur est important. -- Support LSP prêt à l'emploi -- Un focus sur la TUI. OpenCode est construit par des utilisateurs de neovim et les créateurs de [terminal.shop](https://terminal.shop) ; nous allons repousser les limites de ce qui est possible dans le terminal. -- Architecture client/serveur. Cela permet par exemple de faire tourner OpenCode sur votre ordinateur tout en le pilotant à distance depuis une application mobile. Cela signifie que la TUI n'est qu'un des clients possibles. +OpenCode est un agent de code AI capable avec une excellente interface textuelle, un support LSP et une flexibilité multi-fournisseur. Nous l'utilisons car c'est un bon logiciel. Nous supprimons la télémétrie car les revendications de vie privée ne correspondent pas au comportement. ---- +## Licence -**Rejoignez notre communauté** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — identique à l'amont. Voir [LICENSE](LICENSE). diff --git a/README.gr.md b/README.gr.md index 2b2c2679d8..8ff3a3be9f 100644 --- a/README.gr.md +++ b/README.gr.md @@ -1,18 +1,4 @@ -
-
-
-
Ο πράκτορας τεχνητής νοημοσύνης ανοικτού κώδικα για προγραμματισμό.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Ένας καθαρός κλάδος (fork) του [OpenCode](https://github.com/anomalyco/opencode) με όλα τα δεδομένα τηλεμετρίας και τη συμπεριφορά επικοινωνίας με τον κεντρικό διακομιστή (phone-home) να έχουν αφαιρεθεί. ---- +Το OpenCode προωθείται ως «πρώτα η ιδιωτικότητα» και «ανοιχτού κώδικα», αλλά σιωπηλά μεταδίδει δεδομένα σε πολλαπλές υπηρεσίες τρίτων — αναλυτικά δεδομένα (PostHog), τηλεμετρία (Honeycomb), διαμοιρασμός συνεδριών (opncd.ai), προαγωγή εντολών (prompt proxying) (opencode.ai/zen), προώθηση ερωτημάτων αναζήτησης (mcp.exa.ai), και ανακτήσεις λιστών μοντέλων που διαρρέουν τη διεύθυνση IP (models.dev). Οι διαχειριστές αρχικά άρνησαν την ύπαρξη τηλεμετρίας ([#459](https://github.com/sst/opencode/issues/459)), και στη συνέχεια την αναγνώρισαν. Οι χρήστες αναφέρουν ότι η απενεργοποίηση της τηλεμετρίας στις ρυθμίσεις δεν σταματά πλήρως τις εξερχόμενες συνδέσεις ([#5554](https://github.com/sst/opencode/issues/5554)). -### Εγκατάσταση +Το Rolandcode δεν προσπαθεί να πείσει το OpenCode να αλλάξει. Απλώς αφαιρεί την τηλεμετρία τους και παρέχει καθαρές κατασκευές (builds). -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Διαχειριστές πακέτων -npm i -g opencode-ai@latest # ή bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS και Linux (προτείνεται, πάντα ενημερωμένο) -brew install opencode # macOS και Linux (επίσημος τύπος brew, λιγότερο συχνές ενημερώσεις) -sudo pacman -S opencode # Arch Linux (Σταθερό) -paru -S opencode-bin # Arch Linux (Τελευταία έκδοση από AUR) -mise use -g opencode # Οποιοδήποτε λειτουργικό σύστημα -nix run nixpkgs#opencode # ή github:anomalyco/opencode με βάση την πιο πρόσφατη αλλαγή από το dev branch -``` +Το όνομα προέρχεται από το ποίημα του Browning *Childe Roland to the Dark Tower Came* — ο Roland φτάνει στον πύργο παρά τα πάντα που προσπαθούν να τον σταματήσουν. + +--- + +## Τι αφαιρέθηκε -> [!TIP] -> Αφαίρεσε παλαιότερες εκδόσεις από τη 0.1.x πριν από την εγκατάσταση. +| Endpoint | Τι απέστειλε | +|----------|-------------| +| `us.i.posthog.com` | Αναλυτικά δεδομένα χρήσης | +| `api.honeycomb.io` | Τηλεμετρία, διεύθυνση IP, τοποθεσία | +| `api.opencode.ai` | Περιεχόμενο συνεδρίας, εντολές (prompts) | +| `opncd.ai` | Δεδομένα διαμοιρασμού συνεδρίας | +| `opencode.ai/zen/v1` | Εντολές που προωθήθηκαν μέσω της πύλης του OpenCode | +| `mcp.exa.ai` | Ερωτήματα αναζήτησης | +| `models.dev` | Ανακτήσεις λιστών μοντέλων (διαρρέει IP) | +| `app.opencode.ai` | Αντικαταστάτης εφαρμογής (catch-all app proxy) | -### Εφαρμογή Desktop (BETA) +Ο κατάλογος μοντέλων ενσωματώνεται κατά την κατασκευή από μια τοπική στιγμή (snapshot) — χωρίς επικοινωνία με τον διακομιστή κατά την εκτέλεση. -Το OpenCode είναι επίσης διαθέσιμο ως εφαρμογή. Κατέβασε το απευθείας από τη [σελίδα εκδόσεων](https://github.com/anomalyco/opencode/releases) ή το [opencode.ai/download](https://opencode.ai/download). +## Εγκατάσταση -| Πλατφόρμα | Λήψη | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, ή AppImage | +Λήψη ενός εκτελέσιμου αρχείου από τη [σελίδα εκδόσεων](https://github.com/TODO/rolandcode/releases), ή κατασκευή από τον κώδικα: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Λήψη στιγμής καταλόγου μοντέλων +curl -fsSL -o models-api.json https://models.dev/api.json + +# Κατασκευή +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Κατάλογος Εγκατάστασης +Το αρχείο εκτελέσιμου προγράμματος βρίσκεται στο `dist/opencode-linux-x64/bin/rolandcode` (ή το αντίστοιχο για την πλατφόρμα σας). -Το script εγκατάστασης τηρεί την ακόλουθη σειρά προτεραιότητας για τη διαδρομή εγκατάστασης: +## Επαλήθευση -1. `$OPENCODE_INSTALL_DIR` - Προσαρμοσμένος κατάλογος εγκατάστασης -2. `$XDG_BIN_DIR` - Διαδρομή συμβατή με τις προδιαγραφές XDG Base Directory -3. `$HOME/bin` - Τυπικός κατάλογος εκτελέσιμων αρχείων χρήστη (εάν υπάρχει ή μπορεί να δημιουργηθεί) -4. `$HOME/.opencode/bin` - Προεπιλεγμένη εφεδρική διαδρομή +Κάθε κατασκευή μπορεί να επαληθευτεί ως καθαρή: ```bash -# Παραδείγματα -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Πράκτορες +Αυτό αναζητά (grep) σε όλο το δέντρο πηγαίου κώδικα για όλους τους γνωσμένους τομείς τηλεμετρίας και πακέτα SDK. Αν παραμείνει οποιαδήποτε αναφορά, η κατασκευή αποτυγχάνει. Το grep δεν ψεύδεται. -Το OpenCode περιλαμβάνει δύο ενσωματωμένους πράκτορες μεταξύ των οποίων μπορείτε να εναλλάσσεστε με το πλήκτρο `Tab`. +## Πώς λειτουργεί -- **build** - Προεπιλεγμένος πράκτορας με πλήρη πρόσβαση για εργασία πάνω σε κώδικα -- **plan** - Πράκτορας μόνο ανάγνωσης για ανάλυση και εξερεύνηση κώδικα - - Αρνείται την επεξεργασία αρχείων από προεπιλογή - - Ζητά άδεια πριν εκτελέσει εντολές bash - - Ιδανικός για εξερεύνηση άγνωστων αρχείων πηγαίου κώδικα ή σχεδιασμό αλλαγών +Το Rolandcode διατηρεί ένα μικρό σύνολο διορθώσεων (patch set) πάνω από το upstream OpenCode. Κάθε commit αφαίρεσης (strip commit) αφαιρεί ένα θέμα τηλεμετρίας: -Περιλαμβάνεται επίσης ένας **general** υποπράκτορας για σύνθετες αναζητήσεις και πολυβηματικές διεργασίες. -Χρησιμοποιείται εσωτερικά και μπορεί να κληθεί χρησιμοποιώντας `@general` στα μηνύματα. +- `strip-posthog` — Αναλυτικά δεδομένα PostHog +- `strip-honeycomb` — Τηλεμετρία Honeycomb +- `strip-exa` — Προώθηση αναζήτησης mcp.exa.ai +- `strip-opencode-api` — Τομείς api.opencode.ai και opncd.ai +- `strip-zen-gateway` — Ρύθμιση διαύλου Zen +- `strip-app-proxy` — Αντικαταστάτης εφαρμογής app.opencode.ai (catch-all) +- `strip-share-sync` — Αυτόματη διαμοιρασμός συνεδριών +- `strip-models-dev` — Ανακτήσεις λιστών μοντέλων κατά την εκτέλεση -Μάθετε περισσότερα για τους [πράκτορες](https://opencode.ai/docs/agents). +Μικρές, απομονωμένες αναθεωρήσεις επαναβάλλονται (rebase) καθαρά όταν το upstream κινείται. -### Οδηγός Χρήσης +## Δοκιμές -Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση του OpenCode, [**πλοηγήσου στον οδηγό χρήσης μας**](https://opencode.ai/docs). - -### Συνεισφορά +```bash +# Πλήρης σετ (εκτελεί δοκιμές δικαιωμάτων στο Docker όταν εκτελείται ως root) +bash scripts/test.sh -Εάν ενδιαφέρεσαι να συνεισφέρεις στο OpenCode, διαβάστε τα [οδηγό χρήσης συνεισφοράς](./CONTRIBUTING.md) πριν υποβάλεις ένα pull request. +# Μόνο το κύριο σετ +cd packages/opencode && bun test --timeout 30000 -### Δημιουργία πάνω στο OpenCode +# Μόνο οι δοκιμές δικαιωμάτων (πρέπει να μην είναι root, ή να χρησιμοποιείτε Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Εάν εργάζεσαι σε ένα έργο σχετικό με το OpenCode και χρησιμοποιείτε το "opencode" ως μέρος του ονόματός του, για παράδειγμα "opencode-dashboard" ή "opencode-mobile", πρόσθεσε μια σημείωση στο README σας για να διευκρινίσεις ότι δεν είναι κατασκευασμένο από την ομάδα του OpenCode και δεν έχει καμία σχέση με εμάς. +### Γνωστά ζητήματα δοκιμών -### Συχνές Ερωτήσεις +| Δοκιμή | Κατάσταση | Λόγος | +|------|--------|-----| +| `session.llm.stream` (2 από 10) | Ασταθής (Flaky) | Η κατάσταση του διακομιστή HTTP προσομοίωσης διαρρέει μεταξύ παράλληλων δοκιμών. Περνάει 10/10 όταν εκτελείται απομονωμένα (`bun test test/session/llm.test.ts`). Ζήτημα απομόνωσης δοκιμών upstream — όχι ελάττωμα κώδικα. | +| `tool.write > πετάει σφάλμα όταν το OS αρνείται πρόσβαση εγγραφής` | Αποτυγχάνει ως root | Το root παρακάμπτει το `chmod 0o444`. Περνάει στο Docker ως μη-root. Το `scripts/test.sh` το χειρίζεται αυτόματα. | +| `tui config > συνεχίζει το φορτώμα όταν η πηγή legacy δεν μπορεί να αφαιρεθεί` | Αποτυγχάνει ως root | Ίδιο ζήτημα root-αντι-chmod. Περνάει στο Docker ως μη-root. | +| `fsmonitor` (2 δοκιμές) | Παραλείπονται | Μόνο για Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 δοκιμή) | Παραλείπονται | Μόνο για Windows. | +| `τροποποίηση και αποκατάσταση ονομάτων αρχείων unicode` | Παραλείπονται | Το upstream το παραλείπει ρητά — γνωστό σφάλμα που δεν έχουν διορθώσει. | -#### Πώς διαφέρει αυτό από το Claude Code; +## Αρχική Πηγή (Upstream) -Είναι πολύ παρόμοιο με το Claude Code ως προς τις δυνατότητες. Ακολουθούν οι βασικές διαφορές: +Αυτό είναι ένα fork του [anomalyco/opencode](https://github.com/anomalyco/opencode) (άδεια MIT). Όλος ο αρχικός κώδικας είναι δικός τους. Η πλήρης ιστορία υποβολής (commit history) του upstream διατηρείται — μπορείτε να δείτε ακριβώς τι αλλάχθηκε και γιατί. -- 100% ανοιχτού κώδικα -- Δεν είναι συνδεδεμένο με κανέναν πάροχο. Αν και συνιστούμε τα μοντέλα που παρέχουμε μέσω του [OpenCode Zen](https://opencode.ai/zen), το OpenCode μπορεί να χρησιμοποιηθεί με Claude, OpenAI, Google, ή ακόμα και τοπικά μοντέλα. Καθώς τα μοντέλα εξελίσσονται, τα κενά μεταξύ τους θα κλείσουν και οι τιμές θα μειωθούν, οπότε είναι σημαντικό να είσαι ανεξάρτητος από τον πάροχο. -- Out-of-the-box υποστήριξη LSP -- Εστίαση στο TUI. Το OpenCode είναι κατασκευασμένο από χρήστες που χρησιμοποιούν neovim και τους δημιουργούς του [terminal.shop](https://terminal.shop)· θα εξαντλήσουμε τα όρια του τι είναι δυνατό στο terminal. -- Αρχιτεκτονική client/server. Αυτό, για παράδειγμα, μπορεί να επιτρέψει στο OpenCode να τρέχει στον υπολογιστή σου ενώ το χειρίζεσαι εξ αποστάσεως από μια εφαρμογή κινητού, που σημαίνει ότι το TUI frontend είναι μόνο ένας από τους πιθανούς clients. +Το OpenCode είναι ένας ικανός πράκτορας AI κωδικοποίησης με εξαιρετική διασύνδεση γραμμής εντολών (TUI), υποστήριξη LSP και ευελιξία πολυπρόβλεψης. Το χρησιμοποιούμε επειδή είναι καλό λογισμικό. Αφαιρούμε την τηλεμετρία επειδή οι ισχυρισμοί ιδιωτικότητας δεν ταιριάζουν με τη συμπεριφορά. ---- +## Άδεια -**Γίνε μέλος της κοινότητάς μας** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — ίδια με το upstream. Δείτε το [LICENSE](LICENSE). diff --git a/README.it.md b/README.it.md index 3e516a9027..aee3e87502 100644 --- a/README.it.md +++ b/README.it.md @@ -1,18 +1,4 @@ -
-
-
-
L’agente di coding AI open source.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Un fork pulito di [OpenCode](https://github.com/anomalyco/opencode) con tutta la telemetria e il comportamento di comunicazione con il server centrale rimossi. ---- +OpenCode si pubblicizza come "focalizzato sulla privacy" e "open source", ma trasmette silenziosamente dati a vari servizi di terze parti: analisi (PostHog), telemetria (Honeycomb), condivisione sessioni (opncd.ai), proxy per i prompt (opencode.ai/zen), inoltramento delle query di ricerca (mcp.exa.ai) e recupero delle liste dei modelli che泄露 l'IP (models.dev). I maintainers hanno inizialmente negato l'esistenza della telemetria ([#459](https://github.com/sst/opencode/issues/459)), per poi riconoscerla. Gli utenti riportano che disabilitare la telemetria nella configurazione non ferma completamente le connessioni in uscita ([#5554](https://github.com/sst/opencode/issues/5554)). -### Installazione +Rolandcode non cerca di convincere OpenCode a cambiare. Rimuove semplicemente la loro telemetria e distribuisce build pulite. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Package manager -npm i -g opencode-ai@latest # oppure bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS e Linux (consigliato, sempre aggiornato) -brew install opencode # macOS e Linux (formula brew ufficiale, aggiornata meno spesso) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # Qualsiasi OS -nix run nixpkgs#opencode # oppure github:anomalyco/opencode per l’ultima branch di sviluppo -``` +Il nome deriva da *Childe Roland alla Torre Oscura* di Browning — Roland raggiunge la torre nonostante tutto ciò che cerca di fermarlo. + +--- + +## Cosa è stato rimosso -> [!TIP] -> Rimuovi le versioni precedenti alla 0.1.x prima di installare. +| Endpoint | Cosa inviava | +|----------|-------------| +| `us.i.posthog.com` | Analisi di utilizzo | +| `api.honeycomb.io` | Telemetria, indirizzo IP, posizione | +| `api.opencode.ai` | Contenuto sessione, prompt | +| `opncd.ai` | Dati di condivisione sessione | +| `opencode.ai/zen/v1` | Prompt inoltrati tramite il gateway di OpenCode | +| `mcp.exa.ai` | Query di ricerca | +| `models.dev` | Recupero lista modelli (泄露 IP) | +| `app.opencode.ai` | Proxy app generico | -### App Desktop (BETA) +Il catalogo dei modelli è incluso al momento della build da uno snapshot locale — nessuna comunicazione con il server centrale in tempo di esecuzione. -OpenCode è disponibile anche come applicazione desktop. Puoi scaricarla direttamente dalla [pagina delle release](https://github.com/anomalyco/opencode/releases) oppure da [opencode.ai/download](https://opencode.ai/download). +## Installazione -| Piattaforma | Download | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, oppure AppImage | +Scarica un binario dalla [pagina delle release](https://github.com/TODO/rolandcode/releases), oppure compila dal sorgente: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Scarica uno snapshot del catalogo modelli +curl -fsSL -o models-api.json https://models.dev/api.json + +# Compila +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Directory di installazione +Il binario si trova in `dist/opencode-linux-x64/bin/rolandcode` (o l'equivalente per la tua piattaforma). -Lo script di installazione rispetta il seguente ordine di priorità per il percorso di installazione: +## Verifica -1. `$OPENCODE_INSTALL_DIR` – Directory di installazione personalizzata -2. `$XDG_BIN_DIR` – Percorso conforme alla XDG Base Directory Specification -3. `$HOME/bin` – Directory binaria standard dell’utente (se esiste o può essere creata) -4. `$HOME/.opencode/bin` – Fallback predefinito +Ogni build può essere verificata come pulita: ```bash -# Esempi -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agenti +Questo esegue un grep su tutto l'albero dei sorgenti per tutti i domini di telemetria noti e i pacchetti SDK. Se rimane un riferimento, la build fallisce. Grep non mente. -OpenCode include due agenti integrati tra cui puoi passare usando il tasto `Tab`. +## Come funziona -- **build** – Predefinito, agente con accesso completo per il lavoro di sviluppo -- **plan** – Agente in sola lettura per analisi ed esplorazione del codice - - Nega le modifiche ai file per impostazione predefinita - - Chiede il permesso prima di eseguire comandi bash - - Ideale per esplorare codebase sconosciute o pianificare modifiche +Rolandcode mantiene un piccolo insieme di patch sopra l'upstream OpenCode. Ogni commit di rimozione elimina un aspetto della telemetria: -È inoltre incluso un sotto-agente **general** per ricerche complesse e attività multi-step. -Viene utilizzato internamente e può essere invocato usando `@general` nei messaggi. +- `strip-posthog` — Analisi PostHog +- `strip-honeycomb` — Telemetria Honeycomb +- `strip-exa` — Inoltramento ricerca mcp.exa.ai +- `strip-opencode-api` — Endpoint api.opencode.ai e opncd.ai +- `strip-zen-gateway` — Instradamento proxy Zen +- `strip-app-proxy` — Proxy generico app.opencode.ai +- `strip-share-sync` — Condivisione automatica sessioni +- `strip-models-dev` — Recupero lista modelli in tempo di esecuzione -Scopri di più sugli [agenti](https://opencode.ai/docs/agents). +Commit piccoli e isolati si rebaseano pulitamente quando l'upstream si aggiorna. -### Documentazione +## Test -Per maggiori informazioni su come configurare OpenCode, [**consulta la nostra documentazione**](https://opencode.ai/docs). - -### Contribuire +```bash +# Suite completa (esegue test di permessi in Docker quando si esegue come root) +bash scripts/test.sh -Se sei interessato a contribuire a OpenCode, leggi la nostra [guida alla contribuzione](./CONTRIBUTING.md) prima di inviare una pull request. +# Solo la suite principale +cd packages/opencode && bun test --timeout 30000 -### Costruire su OpenCode +# Solo i test di permessi (deve essere non-root, oppure usare Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Se stai lavorando a un progetto correlato a OpenCode e che utilizza “opencode” come parte del nome (ad esempio “opencode-dashboard” o “opencode-mobile”), aggiungi una nota nel tuo README per chiarire che non è sviluppato dal team OpenCode e che non è affiliato in alcun modo con noi. +### Problemi noti nei test -### FAQ +| Test | Stato | Motivo | +|------|--------|-----| +| `session.llm.stream` (2 su 10) | Instabile | Perdita di stato del server HTTP simulato tra test paralleli. Passa 10/10 se eseguito in isolamento (`bun test test/session/llm.test.ts`). Bug di isolamento dei test upstream — non un difetto di codice. | +| `tool.write > genera errore quando il sistema operativo nega l'accesso in scrittura` | Fallisce come root | Root bypassa `chmod 0o444`. Passa in Docker come non-root. `scripts/test.sh` gestisce questo automaticamente. | +| `tui config > continua il caricamento quando la sorgente legacy non può essere rimossa` | Fallisce come root | Stesso problema root-vs-chmod. Passa in Docker come non-root. | +| `fsmonitor` (2 test) | Saltato | Solo per Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Saltato | Solo per Windows. | +| `unicode filenames modification and restore` | Saltato | Esplicitamente saltato dall'upstream — bug noto che non hanno corretto. | -#### In cosa è diverso da Claude Code? +## Progetto Originale -È molto simile a Claude Code in termini di funzionalità. Ecco le principali differenze: +Questo è un fork di [anomalyco/opencode](https://github.com/anomalyco/opencode) (licenza MIT). Tutto il codice originale è loro. L'intera cronologia dei commit upstream è conservata — puoi vedere esattamente cosa è stato modificato e perché. -- 100% open source -- Non è legato a nessun provider. Anche se consigliamo i modelli forniti tramite [OpenCode Zen](https://opencode.ai/zen), OpenCode può essere utilizzato con Claude, OpenAI, Google o persino modelli locali. Con l’evoluzione dei modelli, le differenze tra di essi si ridurranno e i prezzi scenderanno, quindi essere indipendenti dal provider è importante. -- Supporto LSP pronto all’uso -- Forte attenzione alla TUI. OpenCode è sviluppato da utenti neovim e dai creatori di [terminal.shop](https://terminal.shop); spingeremo al limite ciò che è possibile fare nel terminale. -- Architettura client/server. Questo, ad esempio, permette a OpenCode di girare sul tuo computer mentre lo controlli da remoto tramite un’app mobile. La frontend TUI è quindi solo uno dei possibili client. +OpenCode è un agente di coding AI capace con un'ottima interfaccia testuale, supporto LSP e flessibilità multi-provider. Lo usiamo perché è un buon software. Rimuoviamo la telemetria perché le affermazioni sulla privacy non corrispondono al comportamento. ---- +## Licenza -**Unisciti alla nostra community** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — stessa dell'upstream. Vedi [LICENSE](LICENSE). diff --git a/README.ja.md b/README.ja.md index 144dc7b6f8..db76110768 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,18 +1,4 @@ -
-
-
-
オープンソースのAIコーディングエージェント。
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +[OpenCode](https://github.com/anomalyco/opencode) のクリーンなフォークです。すべてのテレメトリおよびフォーンホーム(外部への報告)機能が削除されています。 ---- +OpenCode は自らを「プライバシーファースト」かつ「オープンソース」と宣伝していますが、実際には複数のサードパーティサービスへデータを静かに送信しています(分析用 PostHog、テレメトリ用 Honeycomb、セッション共有用 opncd.ai、プロンプトプロキシ用 opencode.ai/zen、検索クエリ転送用 mcp.exa.ai、IP 漏洩を伴うモデルリスト取得用 models.dev など)。メンテナは当初テレメトリの存在を否定していましたが([#459](https://github.com/sst/opencode/issues/459))、後に認めました。ユーザーは設定でテレメトリを無効にしても、外部への接続が完全に止まらないことを報告しています([#5554](https://github.com/sst/opencode/issues/5554))。 -### インストール +Rolandcode は OpenCode に変更を促そうとはしません。単にテレメトリを削除し、クリーンなビルドを公開するだけです。 -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# パッケージマネージャー -npm i -g opencode-ai@latest # bun/pnpm/yarn でもOK -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS と Linux(推奨。常に最新) -brew install opencode # macOS と Linux(公式 brew formula。更新頻度は低め) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # どのOSでも -nix run nixpkgs#opencode # または github:anomalyco/opencode で最新 dev ブランチ -``` +名前はブラウニングの詩『チャイルド・ロランドは暗黒の塔に到達した』(*Childe Roland to the Dark Tower Came*)に由来します。ロランドは彼を止めるあらゆるもののせいで塔に到達しました。 + +--- + +## 削除されたもの -> [!TIP] -> インストール前に 0.1.x より古いバージョンを削除してください。 +| エンドポイント | 送信された内容 | +|----------|-------------| +| `us.i.posthog.com` | 使用状況分析 | +| `api.honeycomb.io` | テレメトリ、IP アドレス、所在地 | +| `api.opencode.ai` | セッション内容、プロンプト | +| `opncd.ai` | セッション共有データ | +| `opencode.ai/zen/v1` | OpenCode のゲートウェイを経由してプロキシされたプロンプト | +| `mcp.exa.ai` | 検索クエリ | +| `models.dev` | モデルリスト取得(IP を漏洩) | +| `app.opencode.ai` | キャッチオールアプリプロキシ | -### デスクトップアプリ (BETA) +モデルカタログは、ビルド時にローカルのスナップショットからベンダー化されます。ランタイムでのフォーンホームはありません。 -OpenCode はデスクトップアプリとしても利用できます。[releases page](https://github.com/anomalyco/opencode/releases) から直接ダウンロードするか、[opencode.ai/download](https://opencode.ai/download) を利用してください。 +## インストール -| プラットフォーム | ダウンロード | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`、`.rpm`、または AppImage | +[リリースページ](https://github.com/TODO/rolandcode/releases) からバイナリをダウンロードするか、ソースからビルドします: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Download a model catalog snapshot +curl -fsSL -o models-api.json https://models.dev/api.json + +# Build +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### インストールディレクトリ +バイナリは `dist/opencode-linux-x64/bin/rolandcode` にあります(または、プラットフォームに応じて同等の場所)。 -インストールスクリプトは、インストール先パスを次の優先順位で決定します。 +## 検証 -1. `$OPENCODE_INSTALL_DIR` - カスタムのインストールディレクトリ -2. `$XDG_BIN_DIR` - XDG Base Directory Specification に準拠したパス -3. `$HOME/bin` - 標準のユーザー用バイナリディレクトリ(存在する場合、または作成できる場合) -4. `$HOME/.opencode/bin` - デフォルトのフォールバック +すべてのビルドはクリーンであることを検証できます: ```bash -# 例 -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +これは、既知のすべてのテレメトリドメインおよび SDK パッケージに対してソースツリー全体を grep します。参照が残っている場合、ビルドは失敗します。Grep は嘘をつきません。 -OpenCode には組み込みの Agent が2つあり、`Tab` キーで切り替えられます。 +## 仕組み -- **build** - デフォルト。開発向けのフルアクセス Agent -- **plan** - 分析とコード探索向けの読み取り専用 Agent - - デフォルトでファイル編集を拒否 - - bash コマンド実行前に確認 - - 未知のコードベース探索や変更計画に最適 +Rolandcode は、アップストリームの OpenCode 上に小さなパッチセットを維持しています。各ストリップコミットは 1 つのテレメトリ関心領域を削除します: -また、複雑な検索やマルチステップのタスク向けに **general** サブ Agent も含まれています。 -内部的に使用されており、メッセージで `@general` と入力して呼び出せます。 +- `strip-posthog` — PostHog 分析 +- `strip-honeycomb` — Honeycomb テレメトリ +- `strip-exa` — mcp.exa.ai 検索転送 +- `strip-opencode-api` — api.opencode.ai および opncd.ai エンドポイント +- `strip-zen-gateway` — Zen プロキシルーティング +- `strip-app-proxy` — app.opencode.ai キャッチオールプロキシ +- `strip-share-sync` — 自動セッション共有 +- `strip-models-dev` — ランタイムモデルリスト取得 -[agents](https://opencode.ai/docs/agents) の詳細はこちら。 +小さな、分離されたコミットは、アップストリームが移動した際にクリーンにリベースできます。 -### ドキュメント +## テスト -OpenCode の設定については [**ドキュメント**](https://opencode.ai/docs) を参照してください。 - -### コントリビュート +```bash +# Full suite (runs permission tests in Docker when running as root) +bash scripts/test.sh -OpenCode に貢献したい場合は、Pull Request を送る前に [contributing docs](./CONTRIBUTING.md) を読んでください。 +# Just the main suite +cd packages/opencode && bun test --timeout 30000 -### OpenCode の上に構築する +# Just the permission tests (must be non-root, or use Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -OpenCode に関連するプロジェクトで、名前に "opencode"(例: "opencode-dashboard" や "opencode-mobile")を含める場合は、そのプロジェクトが OpenCode チームによって作られたものではなく、いかなる形でも関係がないことを README に明記してください。 +### 既知のテストの問題点 -### FAQ +| テスト | ステータス | 理由 | +|------|--------|-----| +| `session.llm.stream` (10 のうち 2 つ) | 不安定 | モック HTTP サーバーの状態が並列テスト間で漏洩します。孤立して実行すると 10/10 でパスします(`bun test test/session/llm.test.ts`)。アップストリームのテスト分離バグであり、コードの欠陥ではありません。 | +| `tool.write > OS が書き込みアクセスを拒否した際のエラースロー` | root として実行すると失敗 | root は `chmod 0o444` をバイパスします。Docker の非 root 環境ではパスします。`scripts/test.sh` がこれを自動的に処理します。 | +| `tui config > レガシーソースをストリップできない場合の読み込み継続` | root として実行すると失敗 | 同じ root 対 chmod の問題。Docker の非 root 環境ではパスします。 | +| `fsmonitor` (2 テスト) | スキップ | Windows 専用(`process.platform === "win32"`)。 | +| `worktree-remove` (1 テスト) | スキップ | Windows 専用。 | +| `ユニコードファイル名の修正と復元` | スキップ | アップストリームで明示的にスキップ済み — 修正されていない既知のバグ。 | -#### Claude Code との違いは? +## アップストリーム -機能面では Claude Code と非常に似ています。主な違いは次のとおりです。 +これは [anomalyco/opencode](https://github.com/anomalyco/opencode) のフォークです(MIT ライセンス)。すべての元のコードは彼らのものです。完全なアップストリームコミット履歴は保存されています — 何が変わり、なぜ変わったかが正確に見えます。 -- 100% オープンソース -- 特定のプロバイダーに依存しません。[OpenCode Zen](https://opencode.ai/zen) で提供しているモデルを推奨しますが、OpenCode は Claude、OpenAI、Google、またはローカルモデルでも利用できます。モデルが進化すると差は縮まり価格も下がるため、provider-agnostic であることが重要です。 -- そのまま使える LSP サポート -- TUI にフォーカス。OpenCode は neovim ユーザーと [terminal.shop](https://terminal.shop) の制作者によって作られており、ターミナルで可能なことの限界を押し広げます。 -- クライアント/サーバー構成。例えば OpenCode をあなたのPCで動かし、モバイルアプリからリモート操作できます。TUI フロントエンドは複数あるクライアントの1つにすぎません。 +OpenCode は、優れた TUI、LSP サポート、マルチプロバイダーの柔軟性を備えた有能な AI コーディングエージェントです。良いソフトウェアなので使用しています。プライバシーの主張が実際の動作と一致しないので、テレメトリを削除しています。 ---- +## ライセンス -**コミュニティに参加** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — アップストリームと同じ。[LICENSE](LICENSE) を参照。 diff --git a/README.ko.md b/README.ko.md index 32defc0a5e..57f866de76 100644 --- a/README.ko.md +++ b/README.ko.md @@ -1,18 +1,4 @@ -
-
-
-
오픈 소스 AI 코딩 에이전트.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +[OpenCode](https://github.com/anomalyco/opencode) 의 깔끔한 포크로, 모든 텔레메트리 및 폰홈 (phone-home) 기능이 제거되었습니다. ---- +OpenCode 는 자신을 "프라이버시 우선" 과 "오픈 소스" 라 홍보하지만, 여러 제 3 자 서비스로 데이터를 조용히 전송합니다 — 분석 (PostHog), 텔레메트리 (Honeycomb), 세션 공유 (opncd.ai), 프롬프트 프록시 (opencode.ai/zen), 검색 쿼리 전달 (mcp.exa.ai), 그리고 IP 유출되는 모델 목록 조회 (models.dev). 유지자들은 초기에 텔레메트리가 존재한다고 부인했다가 ([#459](https://github.com/sst/opencode/issues/459)), 이후 이를 인정했습니다. 사용자들은 설정에서 텔레메트리를 비활성화해도 외부 연결이 완전히 중지되지 않는다고 보고합니다 ([#5554](https://github.com/sst/opencode/issues/5554)). -### 설치 +Rolandcode 는 OpenCode 가 변경되도록 설득하려고 하지 않습니다. 그저 텔레메트리를 제거하고 깨끗한 빌드를 배포할 뿐입니다. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# 패키지 매니저 -npm i -g opencode-ai@latest # bun/pnpm/yarn 도 가능 -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS 및 Linux (권장, 항상 최신) -brew install opencode # macOS 및 Linux (공식 brew formula, 업데이트 빈도 낮음) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # 어떤 OS든 -nix run nixpkgs#opencode # 또는 github:anomalyco/opencode 로 최신 dev 브랜치 -``` +이 이름은 브라우닝의 시 *Childe Roland to the Dark Tower Came* 에서 유래했습니다. 롤란드는 그를 막으려던 모든 것을 뚫고 탑에 도달합니다. + +--- + +## 제거된 항목 -> [!TIP] -> 설치 전에 0.1.x 보다 오래된 버전을 제거하세요. +| 엔드포인트 | 전송한 내용 | +|----------|-------------| +| `us.i.posthog.com` | 사용량 분석 | +| `api.honeycomb.io` | 텔레메트리, IP 주소, 위치 | +| `api.opencode.ai` | 세션 내용, 프롬프트 | +| `opncd.ai` | 세션 공유 데이터 | +| `opencode.ai/zen/v1` | OpenCode 게이트웨이를 경유한 프롬프트 | +| `mcp.exa.ai` | 검색 쿼리 | +| `models.dev` | 모델 목록 조회 (IP 유출) | +| `app.opencode.ai` | 전체 앱 프록시 | -### 데스크톱 앱 (BETA) +모델 카탈로그는 빌드 시점에 로컬 스냅샷에서 벤더링되며, 런타임 폰홈 연결이 없습니다. -OpenCode 는 데스크톱 앱으로도 제공됩니다. [releases page](https://github.com/anomalyco/opencode/releases) 에서 직접 다운로드하거나 [opencode.ai/download](https://opencode.ai/download) 를 이용하세요. +## 설치 -| 플랫폼 | 다운로드 | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, 또는 AppImage | +[릴리스 페이지](https://github.com/TODO/rolandcode/releases) 에서 이진 파일을 다운로드하거나 소스에서 빌드하세요: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# 모델 카탈로그 스냅샷 다운로드 +curl -fsSL -o models-api.json https://models.dev/api.json + +# 빌드 +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### 설치 디렉터리 +이진 파일은 `dist/opencode-linux-x64/bin/rolandcode` (또는 플랫폼에 따른 해당 파일) 에 있습니다. -설치 스크립트는 설치 경로를 다음 우선순위로 결정합니다. +## 검증 -1. `$OPENCODE_INSTALL_DIR` - 사용자 지정 설치 디렉터리 -2. `$XDG_BIN_DIR` - XDG Base Directory Specification 준수 경로 -3. `$HOME/bin` - 표준 사용자 바이너리 디렉터리 (존재하거나 생성 가능할 경우) -4. `$HOME/.opencode/bin` - 기본 폴백 +모든 빌드는 깨끗하게 검증될 수 있습니다: ```bash -# 예시 -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +이 스크립트는 전체 소스 트리에서 알려진 텔레메트리 도메인과 SDK 패키지를 검색합니다. 참조가 남아 있으면 빌드가 실패합니다. Grep 은 거짓말을 하지 않습니다. -OpenCode 에는 내장 에이전트 2개가 있으며 `Tab` 키로 전환할 수 있습니다. +## 동작 원리 -- **build** - 기본값, 개발 작업을 위한 전체 권한 에이전트 -- **plan** - 분석 및 코드 탐색을 위한 읽기 전용 에이전트 - - 기본적으로 파일 편집을 거부 - - bash 명령 실행 전에 권한을 요청 - - 낯선 코드베이스를 탐색하거나 변경을 계획할 때 적합 +Rolandcode 는 업스트림 OpenCode 위에 작은 패치 세트를 유지합니다. 각 스트립 (strip) 커밋은 하나의 텔레메트리 문제를 제거합니다: -또한 복잡한 검색과 여러 단계 작업을 위한 **general** 서브 에이전트가 포함되어 있습니다. -내부적으로 사용되며, 메시지에서 `@general` 로 호출할 수 있습니다. +- `strip-posthog` — PostHog 분석 +- `strip-honeycomb` — Honeycomb 텔레메트리 +- `strip-exa` — mcp.exa.ai 검색 전달 +- `strip-opencode-api` — api.opencode.ai 및 opncd.ai 엔드포인트 +- `strip-zen-gateway` — Zen 프록시 라우팅 +- `strip-app-proxy` — app.opencode.ai 전체 프록시 +- `strip-share-sync` — 자동 세션 공유 +- `strip-models-dev` — 런타임 모델 목록 조회 -[agents](https://opencode.ai/docs/agents) 에 대해 더 알아보세요. +작고 격리된 커밋은 업스트림이 변경될 때도 깔끔하게 리베이스됩니다. -### 문서 +## 테스트 -OpenCode 설정에 대한 자세한 내용은 [**문서**](https://opencode.ai/docs) 를 참고하세요. - -### 기여하기 +```bash +# 전체 테스트 세트 (루트로 실행 시 Docker 에서 권한 테스트 실행) +bash scripts/test.sh -OpenCode 에 기여하고 싶다면, Pull Request 를 제출하기 전에 [contributing docs](./CONTRIBUTING.md) 를 읽어주세요. +# 메인 테스트 세트만 +cd packages/opencode && bun test --timeout 30000 -### OpenCode 기반으로 만들기 +# 권한 테스트만 (루트가 아니어야 하거나 Docker 사용) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -OpenCode 와 관련된 프로젝트를 진행하면서 이름에 "opencode"(예: "opencode-dashboard" 또는 "opencode-mobile") 를 포함한다면, README 에 해당 프로젝트가 OpenCode 팀이 만든 것이 아니며 어떤 방식으로도 우리와 제휴되어 있지 않다는 점을 명시해 주세요. +### 알려진 테스트 이슈 -### FAQ +| 테스트 | 상태 | 이유 | +|------|--------|-----| +| `session.llm.stream` (10 개 중 2 개) | 불안정 (Flaky) | 모의 HTTP 서버 상태가 병렬 테스트 간 누출됨. 격리 실행 시 10/10 통과 (`bun test test/session/llm.test.ts`). 업스트림 테스트 격리 버그 — 코드 결함 아님. | +| `tool.write > OS 가 쓰기 접근을 거부할 때 오류 발생` | 루트 권한 시 실패 | 루트는 `chmod 0o444` 를 우회합니다. Docker 에서 비루트로 실행 시 통과. `scripts/test.sh` 가 이를 자동으로 처리합니다. | +| `tui config > 레거시 소스를 스트립할 수 없을 때 로딩 계속` | 루트 권한 시 실패 | 동일한 루트 대 chmod 이슈. Docker 에서 비루트로 실행 시 통과. | +| `fsmonitor` (2 개 테스트) | 생략 (Skipped) | Windows 전용 (`process.platform === "win32"`). | +| `worktree-remove` (1 개 테스트) | 생략 (Skipped) | Windows 전용. | +| `유니코드가 포함된 파일명 수정 및 복원` | 생략 (Skipped) | 업스트림에서 명시적으로 생략됨 — 수정하지 않은 알려진 버그. | -#### Claude Code 와는 무엇이 다른가요? +## 업스트림 -기능 면에서는 Claude Code 와 매우 유사합니다. 주요 차이점은 다음과 같습니다. +이 프로젝트는 [anomalyco/opencode](https://github.com/anomalyco/opencode) (MIT 라이선스) 의 포크입니다. 모든 기존 코드는 그들의 소유입니다. 전체 업스트림 커밋 히스토리가 보존되어 있으므로 정확히 무엇이 변경되었고 그 이유가 무엇인지 확인할 수 있습니다. -- 100% 오픈 소스 -- 특정 제공자에 묶여 있지 않습니다. [OpenCode Zen](https://opencode.ai/zen) 을 통해 제공하는 모델을 권장하지만, OpenCode 는 Claude, OpenAI, Google 또는 로컬 모델과도 사용할 수 있습니다. 모델이 발전하면서 격차는 줄고 가격은 내려가므로 provider-agnostic 인 것이 중요합니다. -- 기본으로 제공되는 LSP 지원 -- TUI 에 집중. OpenCode 는 neovim 사용자와 [terminal.shop](https://terminal.shop) 제작자가 만들었으며, 터미널에서 가능한 것의 한계를 밀어붙입니다. -- 클라이언트/서버 아키텍처. 예를 들어 OpenCode 를 내 컴퓨터에서 실행하면서 모바일 앱으로 원격 조작할 수 있습니다. 즉, TUI 프런트엔드는 가능한 여러 클라이언트 중 하나일 뿐입니다. +OpenCode 는 뛰어난 TUI, LSP 지원, 다중 제공자 유연성을 갖춘 유능한 AI 코딩 에이전트입니다. 우리는 그것이 좋은 소프트웨어이기 때문에 사용합니다. 프라이버시 주장이 실제 동작과 맞지 않기 때문에 텔레메트리를 제거합니다. ---- +## 라이선스 -**커뮤니티에 참여하기** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — 업스트림과 동일합니다. [LICENSE](LICENSE) 파일을 참조하세요. diff --git a/README.md b/README.md index e2e5ca0eaa..1e8c9f2ca6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,30 @@ # Rolandcode ++ English | + 简体中文 | + 繁體中文 | + 한국어 | + Deutsch | + Español | + Français | + Italiano | + Dansk | + 日本語 | + Polski | + Русский | + Bosanski | + العربية | + Norsk | + Português (Brasil) | + ไทย | + Türkçe | + Українська | + বাংলা | + Ελληνικά | + Tiếng Việt +
+ A clean fork of [OpenCode](https://github.com/anomalyco/opencode) with all telemetry and phone-home behavior removed. OpenCode markets itself as "privacy-first" and "open source," but silently transmits data to multiple third-party services — analytics (PostHog), telemetry (Honeycomb), session sharing (opncd.ai), prompt proxying (opencode.ai/zen), search query forwarding (mcp.exa.ai), and IP-leaking model list fetches (models.dev). The maintainers initially denied telemetry existed ([#459](https://github.com/sst/opencode/issues/459)), then acknowledged it. Users report that disabling telemetry in config doesn't fully stop outbound connections ([#5554](https://github.com/sst/opencode/issues/5554)). diff --git a/README.no.md b/README.no.md index c3348286b2..ef4804046c 100644 --- a/README.no.md +++ b/README.no.md @@ -1,18 +1,4 @@ -
-
-
-
AI-kodeagent med åpen kildekode.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +En ren fork av [OpenCode](https://github.com/anomalyco/opencode) med all telemetri og "ring-hjem"-opførsel fjernet. ---- +OpenCode markedsfører seg selv som "privatliv først" og "åpen kildekode", men sender stille data til flere tredjepartstjenester — analyse (PostHog), telemetri (Honeycomb), sesjonsdeling (opncd.ai), proxying av prompter (opencode.ai/zen), videresending av søkeforespørsler (mcp.exa.ai), og henting av modellliste som lekker IP (models.dev). Vedlikeholderne nektet først for at telemetri eksisterte ([#459](https://github.com/sst/opencode/issues/459)), før de innrømmet det. Brukere rapporterer at å deaktivere telemetri i konfigurasjonen ikke helt stopper utgående forbindelser ([#5554](https://github.com/sst/opencode/issues/5554)). -### Installasjon +Rolandcode forsøker ikke å overtale OpenCode til å endre seg. Det fjerner bare deres telemetri og leverer rene bygninger. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Pakkehåndterere -npm i -g opencode-ai@latest # eller bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS og Linux (anbefalt, alltid oppdatert) -brew install opencode # macOS og Linux (offisiell brew-formel, oppdateres sjeldnere) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # alle OS -nix run nixpkgs#opencode # eller github:anomalyco/opencode for nyeste dev-branch -``` +Navnet er hentet fra Browning's *Childe Roland to the Dark Tower Came* — Roland når tårnet til tross for alt som prøver å stoppe ham. + +--- + +## Hva som er fjernet -> [!TIP] -> Fjern versjoner eldre enn 0.1.x før du installerer. +| Endepunkt | Hva det sendte | +|----------|-------------| +| `us.i.posthog.com` | Bruksanalyse | +| `api.honeycomb.io` | Telemetri, IP-adresse, lokasjon | +| `api.opencode.ai` | Sesjonsinnhold, prompter | +| `opncd.ai` | Data for sesjonsdeling | +| `opencode.ai/zen/v1` | Prompter som ble proxyet gjennom OpenCode's gatekeeper | +| `mcp.exa.ai` | Søkeforespørsler | +| `models.dev` | Henting av modellliste (lekker IP) | +| `app.opencode.ai` | Proxy for alle app-forespørsler (catch-all) | -### Desktop-app (BETA) +Modellkatalogen er inkludert lokalt ved byggingstidspunktet fra et lokalt snapshot — ingen oppkobling hjemmefra ved kjøretid. -OpenCode er også tilgjengelig som en desktop-app. Last ned direkte fra [releases-siden](https://github.com/anomalyco/opencode/releases) eller [opencode.ai/download](https://opencode.ai/download). +## Installasjon -| Plattform | Nedlasting | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` eller AppImage | +Last ned en binærfil fra [releases-siden](https://github.com/TODO/rolandcode/releases), eller bygg fra kildekode: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Last ned et snapshot av modellkatalogen +curl -fsSL -o models-api.json https://models.dev/api.json + +# Bygg +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Installasjonsmappe +Binærfilen ligger på `dist/opencode-linux-x64/bin/rolandcode` (eller tilsvarende for din plattform). -Installasjonsskriptet bruker følgende prioritet for installasjonsstien: +## Verifisering -1. `$OPENCODE_INSTALL_DIR` - Egendefinert installasjonsmappe -2. `$XDG_BIN_DIR` - Sti som følger XDG Base Directory Specification -3. `$HOME/bin` - Standard brukerbinar-mappe (hvis den finnes eller kan opprettes) -4. `$HOME/.opencode/bin` - Standard fallback +Hver bygging kan verifiseres som ren: ```bash -# Eksempler -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Dette søker (grep) gjennom hele kildetre for alle kjente telemetri-domener og SDK-pakker. Hvis noen referanse gjenstår, mislykkes byggingen. Grep lyver ikke. -OpenCode har to innebygde agents du kan bytte mellom med `Tab`-tasten. +## Hvordan det fungerer -- **build** - Standard, agent med full tilgang for utviklingsarbeid -- **plan** - Skrivebeskyttet agent for analyse og kodeutforsking - - Nekter filendringer som standard - - Spør om tillatelse før bash-kommandoer - - Ideell for å utforske ukjente kodebaser eller planlegge endringer +Rolandcode vedlikeholder et lite sett med endringslapper ovenpå oppstrøms OpenCode. Hver "strip"-commit fjerner én telemetri-bekymring: -Det finnes også en **general**-subagent for komplekse søk og flertrinnsoppgaver. -Den brukes internt og kan kalles via `@general` i meldinger. +- `strip-posthog` — PostHog-analyse +- `strip-honeycomb` — Honeycomb-telemetri +- `strip-exa` — mcp.exa.ai videresending av søk +- `strip-opencode-api` — api.opencode.ai og opncd.ai endepunkter +- `strip-zen-gateway` — Zen proxy-routing +- `strip-app-proxy` — app.opencode.ai proxy for alle forespørsler +- `strip-share-sync` — Automatisk sesjonsdeling +- `strip-models-dev` — Henting av modellliste ved kjøretid -Les mer om [agents](https://opencode.ai/docs/agents). +Små, isolerte commits rebaseres rent når oppstrøms beveger seg. -### Dokumentasjon +## Testing -For mer info om hvordan du konfigurerer OpenCode, [**se dokumentasjonen**](https://opencode.ai/docs). - -### Bidra +```bash +# Full testserie (kjører tillatelsestester i Docker når kjører som root) +bash scripts/test.sh -Hvis du vil bidra til OpenCode, les [contributing docs](./CONTRIBUTING.md) før du sender en pull request. +# Bare hovedserien +cd packages/opencode && bun test --timeout 30000 -### Bygge på OpenCode +# Bare tillatelsestestene (må være ikke-root, eller bruk Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Hvis du jobber med et prosjekt som er relatert til OpenCode og bruker "opencode" som en del av navnet; for eksempel "opencode-dashboard" eller "opencode-mobile", legg inn en merknad i README som presiserer at det ikke er bygget av OpenCode-teamet og ikke er tilknyttet oss på noen måte. +### Kjente testproblemer -### FAQ +| Test | Status | Hvorfor | +|------|--------|-----| +| `session.llm.stream` (2 av 10) | Ustabil | Mock HTTP-server tilstand lekker mellom parallelle tester. Passer 10/10 når kjørt isolert (`bun test test/session/llm.test.ts`). Oppstrøms feil med testisolering — ikke en kodeskade. | +| `tool.write > throws error when OS denies write access` | Mislykkes som root | Root omgår `chmod 0o444`. Passer i Docker som ikke-root. `scripts/test.sh` håndterer dette automatisk. | +| `tui config > continues loading when legacy source cannot be stripped` | Mislykkes som root | Samme root-vs-chmod-problemet. Passer i Docker som ikke-root. | +| `fsmonitor` (2 tester) | Hoppet over | Kun for Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Hoppet over | Kun for Windows. | +| `unicode filenames modification and restore` | Hoppet over | Oppstrøms eksplisitt hoppet over — kjent feil de ikke har rettet. | -#### Hvordan er dette forskjellig fra Claude Code? +## Oppstrøms -Det er veldig likt Claude Code når det gjelder funksjonalitet. Her er de viktigste forskjellene: +Dette er en fork av [anomalyco/opencode](https://github.com/anomalyco/opencode) (MIT-lisens). All opprinnelig kode er deres. Hele oppstrøms commit-historikken er bevart — du kan se nøyaktig hva som ble endret og hvorfor. -- 100% open source -- Ikke knyttet til en bestemt leverandør. Selv om vi anbefaler modellene vi tilbyr gjennom [OpenCode Zen](https://opencode.ai/zen); kan OpenCode brukes med Claude, OpenAI, Google eller til og med lokale modeller. Etter hvert som modellene utvikler seg vil gapene lukkes og prisene gå ned, så det er viktig å være provider-agnostic. -- LSP-støtte rett ut av boksen -- Fokus på TUI. OpenCode er bygget av neovim-brukere og skaperne av [terminal.shop](https://terminal.shop); vi kommer til å presse grensene for hva som er mulig i terminalen. -- Klient/server-arkitektur. Dette kan for eksempel la OpenCode kjøre på maskinen din, mens du styrer den eksternt fra en mobilapp. Det betyr at TUI-frontend'en bare er en av de mulige klientene. +OpenCode er en kapabel AI-kodingsagent med et flott TUI, LSP-støtte, og fleksibilitet med flere leverandører. Vi bruker den fordi det er god programvare. Vi fjerner telemetri fordi privatlivserklæringene ikke stemmer overens med atferden. ---- +## Lisens -**Bli med i fellesskapet** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — samme som oppstrøms. Se [LICENSE](LICENSE). diff --git a/README.pl.md b/README.pl.md index 4c5a076656..889e6261fa 100644 --- a/README.pl.md +++ b/README.pl.md @@ -1,18 +1,4 @@ -
-
-
-
Otwartoźródłowy agent kodujący AI.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Czysty fork projektu [OpenCode](https://github.com/anomalyco/opencode), z którego usunięto całą telemetrię i zachowania typu "kontakt z serwerem". ---- +OpenCode reklamuje się jako "priorytet prywatności" i "otwarte źródło", ale w cichu przesyła dane do wielu usług stron trzecich — analityka (PostHog), telemetria (Honeycomb), współdzielenie sesji (opncd.ai), proxy promptów (opencode.ai/zen), przekazywanie zapytań wyszukiwania (mcp.exa.ai) oraz pobieranie list modeli wyciekających adres IP (models.dev). Utrzymujący projekt początkowo zaprzeczali istnieniu telemetrii ([#459](https://github.com/sst/opencode/issues/459)), a następnie ją potwierdzili. Użytkownicy raportują, że wyłączenie telemetrii w konfiguracji nie zatrzymuje w pełni połączeń wychodzących ([#5554](https://github.com/sst/opencode/issues/5554)). -### Instalacja +Rolandcode nie próbuje przekonać OpenCode do zmian. Po prostu usuwa ich telemetrię i dostarcza czyste budowy. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Menedżery pakietów -npm i -g opencode-ai@latest # albo bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS i Linux (polecane, zawsze aktualne) -brew install opencode # macOS i Linux (oficjalna formuła brew, rzadziej aktualizowana) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # dowolny system -nix run nixpkgs#opencode # lub github:anomalyco/opencode dla najnowszej gałęzi dev -``` +Nazwa pochodzi z utworu Browninga *Childe Roland przyszedł do Ciemnej Wieży* — Roland dociera do wieży pomimo wszystkiego, co próbuje go powstrzymać. + +--- + +## Co zostało usunięte -> [!TIP] -> Przed instalacją usuń wersje starsze niż 0.1.x. +| Endpoint | Przesyłane dane | +|----------|-----------------| +| `us.i.posthog.com` | Analiza użytkowania | +| `api.honeycomb.io` | Telemetria, adres IP, lokalizacja | +| `api.opencode.ai` | Treść sesji, prompty | +| `opncd.ai` | Dane współdzielenia sesji | +| `opencode.ai/zen/v1` | Prompty przekazywane przez bramę OpenCode | +| `mcp.exa.ai` | Zapytania wyszukiwania | +| `models.dev` | Pobieranie listy modeli (wyciek IP) | +| `app.opencode.ai` | Proxy typu "wszystko w jednym" | -### Aplikacja desktopowa (BETA) +Katalog modeli jest włączany do budowy w czasie kompilacji z lokalnej migawki — brak kontaktu z serwerem w czasie działania. -OpenCode jest także dostępny jako aplikacja desktopowa. Pobierz ją bezpośrednio ze strony [releases](https://github.com/anomalyco/opencode/releases) lub z [opencode.ai/download](https://opencode.ai/download). +## Instalacja -| Platforma | Pobieranie | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` lub AppImage | +Pobierz binarkę ze [strony wydań](https://github.com/TODO/rolandcode/releases), lub zbuduj ze źródła: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Pobierz migawkę katalogu modeli +curl -fsSL -o models-api.json https://models.dev/api.json + +# Budowa +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Katalog instalacji +Binarka znajduje się w `dist/opencode-linux-x64/bin/rolandcode` (lub odpowiedniku dla Twojej platformy). -Skrypt instalacyjny stosuje następujący priorytet wyboru ścieżki instalacji: +## Weryfikacja -1. `$OPENCODE_INSTALL_DIR` - Własny katalog instalacji -2. `$XDG_BIN_DIR` - Ścieżka zgodna ze specyfikacją XDG Base Directory -3. `$HOME/bin` - Standardowy katalog binarny użytkownika (jeśli istnieje lub można go utworzyć) -4. `$HOME/.opencode/bin` - Domyślny fallback +Każdą budowę można zweryfikować jako czystą: ```bash -# Przykłady -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +To przeszukuje (grep) całe drzewo źródłowe pod kątem wszystkich znanych domen telemetrycznych i pakietów SDK. Jeśli pozostanie jakiekolwiek odniesienie, budowa się nie powiodzie. Grep nie kłamie. -OpenCode zawiera dwóch wbudowanych agentów, między którymi możesz przełączać się klawiszem `Tab`. +## Jak to działa -- **build** - Domyślny agent z pełnym dostępem do pracy developerskiej -- **plan** - Agent tylko do odczytu do analizy i eksploracji kodu - - Domyślnie odmawia edycji plików - - Pyta o zgodę przed uruchomieniem komend bash - - Idealny do poznawania nieznanych baz kodu lub planowania zmian +Rolandcode utrzymuje mały zestaw łatek na wierzchu projektu źródłowego OpenCode. Każdy commit typu "strip" usuwa jedno zagadnienie telemetryczne: -Dodatkowo jest subagent **general** do złożonych wyszukiwań i wieloetapowych zadań. -Jest używany wewnętrznie i można go wywołać w wiadomościach przez `@general`. +- `strip-posthog` — Analiza PostHog +- `strip-honeycomb` — Telemetria Honeycomb +- `strip-exa` — Przekazywanie wyszukiwania mcp.exa.ai +- `strip-opencode-api` — Endpointy api.opencode.ai i opncd.ai +- `strip-zen-gateway` — Routing proxy Zen +- `strip-app-proxy` — Proxy typu "wszystko w jednym" app.opencode.ai +- `strip-share-sync` — Automatyczne współdzielenie sesji +- `strip-models-dev` — Pobieranie listy modeli w czasie działania -Dowiedz się więcej o [agents](https://opencode.ai/docs/agents). +Małe, izolowane commity czysto się rebaseują, gdy projekt źródłowy się przesuwa. -### Dokumentacja +## Testowanie -Więcej informacji o konfiguracji OpenCode znajdziesz w [**dokumentacji**](https://opencode.ai/docs). - -### Współtworzenie +```bash +# Pełny zestaw (uruchamia testy uprawnień w Dockerze, gdy działa jako root) +bash scripts/test.sh -Jeśli chcesz współtworzyć OpenCode, przeczytaj [contributing docs](./CONTRIBUTING.md) przed wysłaniem pull requesta. +# Tylko główny zestaw +cd packages/opencode && bun test --timeout 30000 -### Budowanie na OpenCode +# Tylko testy uprawnień (musi być nie-root, lub użyj Dockera) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Jeśli pracujesz nad projektem związanym z OpenCode i używasz "opencode" jako części nazwy (na przykład "opencode-dashboard" lub "opencode-mobile"), dodaj proszę notatkę do swojego README, aby wyjaśnić, że projekt nie jest tworzony przez zespół OpenCode i nie jest z nami w żaden sposób powiązany. +### Znane problemy z testami -### FAQ +| Test | Status | Dlaczego | +|------|--------|-----| +| `session.llm.stream` (2 z 10) | Niestabilny | Stan serwera HTTP mock wycieka między równoległymi testami. Przechodzi 10/10 przy uruchomieniu w izolacji (`bun test test/session/llm.test.ts`). Błąd izolacji testów w projekcie źródłowym — nie wada kodu. | +| `tool.write > zgłasza błąd, gdy system operacyjny odmawia dostępu do zapisu` | Nieudany jako root | Root omija `chmod 0o444`. Przechodzi w Dockerze jako nie-root. `scripts/test.sh` obsługuje to automatycznie. | +| `tui config > kontynuuje ładowanie, gdy źródło legacy nie może zostać usunięte` | Nieudany jako root | Ten sam problem root-vs-chmod. Przechodzi w Dockerze jako nie-root. | +| `fsmonitor` (2 testy) | Pominięty | Tylko Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Pominięty | Tylko Windows. | +| `modyfikacja i przywracanie nazw plików unicode` | Pominięty | Projekt źródłowy jawnie pominął — znany błąd, którego nie naprawili. | -#### Czym to się różni od Claude Code? +## Projekt źródłowy (Upstream) -Jest bardzo podobne do Claude Code pod względem możliwości. Oto kluczowe różnice: +To jest fork projektu [anomalyco/opencode](https://github.com/anomalyco/opencode) (licencja MIT). Cały oryginalny kod należy do nich. Pełna historia commitów projektu źródłowego jest zachowana — możesz zobaczyć dokładnie, co zostało zmienione i dlaczego. -- 100% open source -- Niezależne od dostawcy. Chociaż polecamy modele oferowane przez [OpenCode Zen](https://opencode.ai/zen); OpenCode może być używany z Claude, OpenAI, Google, a nawet z modelami lokalnymi. W miarę jak modele ewoluują, różnice będą się zmniejszać, a ceny spadać, więc ważna jest niezależność od dostawcy. -- Wbudowane wsparcie LSP -- Skupienie na TUI. OpenCode jest budowany przez użytkowników neovim i twórców [terminal.shop](https://terminal.shop); przesuwamy granice tego, co jest możliwe w terminalu. -- Architektura klient/serwer. Pozwala np. uruchomić OpenCode na twoim komputerze, a sterować nim zdalnie z aplikacji mobilnej. To znaczy, że frontend TUI jest tylko jednym z możliwych klientów. +OpenCode to zdolny agent AI do kodowania z świetnym interfejsem TUI, obsługą LSP i elastycznością wielodostawczą. Używamy go, ponieważ to dobry soft. Usuwamy telemetrię, ponieważ twierdzenia o prywatności nie odpowiadają zachowaniu. ---- +## Licencja -**Dołącz do naszej społeczności** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — taka sama jak w projekcie źródłowym. Zobacz [LICENSE](LICENSE). diff --git a/README.ru.md b/README.ru.md index e507be70e6..706b438dd8 100644 --- a/README.ru.md +++ b/README.ru.md @@ -1,18 +1,4 @@ -
-
-
-
Открытый AI-агент для программирования.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Чистая версия (форк) [OpenCode](https://github.com/anomalyco/opencode) с удаленной телеметрией и функциями связи с внешними серверами. ---- +OpenCode позиционирует себя как «с приватностью на первом месте» и «с открытым исходным кодом», но тайно передает данные в несколько сторонних сервисов — аналитику (PostHog), телеметрию (Honeycomb), обмен сессиями (opncd.ai), проксирование запросов (opencode.ai/zen), пересылку поисковых запросов (mcp.exa.ai) и получение списка моделей, раскрывающее IP-адрес (models.dev). Разработчики изначально отрицали наличие телеметрии ([#459](https://github.com/sst/opencode/issues/459)), а затем признали её. Пользователи сообщают, что отключение телеметрии в конфигурации не полностью останавливает исходящие соединения ([#5554](https://github.com/sst/opencode/issues/5554)). -### Установка +Rolandcode не пытается убедить OpenCode что-то изменить. Он просто удаляет их телеметрию и выпускает чистые сборки. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Менеджеры пакетов -npm i -g opencode-ai@latest # или bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS и Linux (рекомендуем, всегда актуально) -brew install opencode # macOS и Linux (официальная формула brew, обновляется реже) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # любая ОС -nix run nixpkgs#opencode # или github:anomalyco/opencode для самой свежей ветки dev -``` +Название взято из поэмы Бронинга *Чильд Роланд у тёмной башни* (Childe Roland to the Dark Tower Came) — Роланд достигает башни, несмотря на всё, что пытается его остановить. + +--- + +## Что удалено -> [!TIP] -> Перед установкой удалите версии старше 0.1.x. +| Конечная точка | Что отправлялось | +|----------|-------------| +| `us.i.posthog.com` | Аналитика использования | +| `api.honeycomb.io` | Телеметрия, IP-адрес, геолокация | +| `api.opencode.ai` | Содержимое сессии, промпты | +| `opncd.ai` | Данные для обмена сессиями | +| `opencode.ai/zen/v1` | Пропмпты, проксируемые через шлюз OpenCode | +| `mcp.exa.ai` | Поисковые запросы | +| `models.dev` | Запросы списка моделей (раскрывает IP) | +| `app.opencode.ai` | Универсальный прокси приложения | -### Десктопное приложение (BETA) +Каталог моделей встраивается во время сборки из локального снимка — никаких обращений к серверу во время работы. -OpenCode также доступен как десктопное приложение. Скачайте его со [страницы релизов](https://github.com/anomalyco/opencode/releases) или с [opencode.ai/download](https://opencode.ai/download). +## Установка -| Платформа | Загрузка | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` или AppImage | +Скачайте исполняемый файл со [страницы релизов](https://github.com/TODO/rolandcode/releases) или соберите из исходного кода: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Скачайте снимок каталога моделей +curl -fsSL -o models-api.json https://models.dev/api.json + +# Сборка +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Каталог установки +Исполняемый файл находится в `dist/opencode-linux-x64/bin/rolandcode` (или аналогичный путь для вашей платформы). -Скрипт установки выбирает путь установки в следующем порядке приоритета: +## Проверка -1. `$OPENCODE_INSTALL_DIR` - Пользовательский каталог установки -2. `$XDG_BIN_DIR` - Путь, совместимый со спецификацией XDG Base Directory -3. `$HOME/bin` - Стандартный каталог пользовательских бинарников (если существует или можно создать) -4. `$HOME/.opencode/bin` - Fallback по умолчанию +Каждую сборку можно проверить на чистоту: ```bash -# Примеры -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +Это скрипт ищет по всем исходникам все известные домены телеметрии и пакеты SDK. Если найдется какая-либо ссылка, сборка завершится ошибкой. Grep не врет. -В OpenCode есть два встроенных агента, между которыми можно переключаться клавишей `Tab`. +## Как это работает -- **build** - По умолчанию, агент с полным доступом для разработки -- **plan** - Агент только для чтения для анализа и изучения кода - - По умолчанию запрещает редактирование файлов - - Запрашивает разрешение перед выполнением bash-команд - - Идеален для изучения незнакомых кодовых баз или планирования изменений +Rolandcode поддерживает небольшой набор патчей поверх исходного OpenCode. Каждый коммит по удалению устраняет одну проблему телеметрии: -Также включен сабагент **general** для сложных поисков и многошаговых задач. -Он используется внутренне и может быть вызван в сообщениях через `@general`. +- `strip-posthog` — аналитика PostHog +- `strip-honeycomb` — телеметрия Honeycomb +- `strip-exa` — пересылка поиска через mcp.exa.ai +- `strip-opencode-api` — конечные точки api.opencode.ai и opncd.ai +- `strip-zen-gateway` — маршрутизация через прокси Zen +- `strip-app-proxy` — универсальный прокси app.opencode.ai +- `strip-share-sync` — автоматический обмен сессиями +- `strip-models-dev` — получение списка моделей во время работы -Подробнее об [agents](https://opencode.ai/docs/agents). +Маленькие, изолированные коммиты чистятся при ребейзе, когда исходный проект обновляется. -### Документация +## Тестирование -Больше информации о том, как настроить OpenCode: [**наши docs**](https://opencode.ai/docs). - -### Вклад +```bash +# Полный набор (запускает тесты прав в Docker при запуске от root) +bash scripts/test.sh -Если вы хотите внести вклад в OpenCode, прочитайте [contributing docs](./CONTRIBUTING.md) перед тем, как отправлять pull request. +# Только основной набор +cd packages/opencode && bun test --timeout 30000 -### Разработка на базе OpenCode +# Только тесты прав (должны запускаться не от root, или через Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Если вы делаете проект, связанный с OpenCode, и используете "opencode" как часть имени (например, "opencode-dashboard" или "opencode-mobile"), добавьте примечание в README, чтобы уточнить, что проект не создан командой OpenCode и не аффилирован с нами. +### Известные проблемы с тестами -### FAQ +| Тест | Статус | Причина | +|------|--------|-----| +| `session.llm.stream` (2 из 10) | Нестабильный | Состояние мок-сервера HTTP утекает между параллельными тестами. Проходит 10/10 при запуске в изоляции (`bun test test/session/llm.test.ts`). Ошибка изоляции тестов в исходном проекте — не дефект кода. | +| `tool.write > throws error when OS denies write access` | Не проходит от root | Root обходит `chmod 0o444`. Проходит в Docker не от root. `scripts/test.sh` обрабатывает это автоматически. | +| `tui config > continues loading when legacy source cannot be stripped` | Не проходит от root | Та же проблема с root и chmod. Проходит в Docker не от root. | +| `fsmonitor` (2 теста) | Пропущены | Только для Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 тест) | Пропущен | Только для Windows. | +| `unicode filenames modification and restore` | Пропущен | Явно пропущено в исходном проекте — известный баг, который они не исправили. | -#### Чем это отличается от Claude Code? +## Исходный проект -По возможностям это очень похоже на Claude Code. Вот ключевые отличия: +Это форк [anomalyco/opencode](https://github.com/anomalyco/opencode) (лицензия MIT). Весь оригинальный код принадлежит им. Полная история коммитов исходного проекта сохранена — вы можете увидеть, что именно было изменено и почему. -- 100% open source -- Не привязано к одному провайдеру. Мы рекомендуем модели из [OpenCode Zen](https://opencode.ai/zen); но OpenCode можно использовать с Claude, OpenAI, Google или даже локальными моделями. По мере развития моделей разрыв будет сокращаться, а цены падать, поэтому важна независимость от провайдера. -- Поддержка LSP из коробки -- Фокус на TUI. OpenCode построен пользователями neovim и создателями [terminal.shop](https://terminal.shop); мы будем раздвигать границы того, что возможно в терминале. -- Архитектура клиент/сервер. Например, это позволяет запускать OpenCode на вашем компьютере, а управлять им удаленно из мобильного приложения. Это значит, что TUI-фронтенд - лишь один из возможных клиентов. +OpenCode — это capable AI-агент для написания кода с отличным TUI, поддержкой LSP и гибкостью выбора провайдеров. Мы используем его, потому что это хороший софт. Мы удаляем телеметрию, потому что заявления о приватности не соответствуют поведению. ---- +## Лицензия -**Присоединяйтесь к нашему сообществу** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — как и в исходном проекте. См. [LICENSE](LICENSE). diff --git a/README.th.md b/README.th.md index 4a4ea62c95..a8ca474d4f 100644 --- a/README.th.md +++ b/README.th.md @@ -1,18 +1,4 @@ -
-
-
-
เอเจนต์การเขียนโค้ดด้วย AI แบบโอเพนซอร์ส
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +การแยกสาขา (fork) ที่สะอาดของ [OpenCode](https://github.com/anomalyco/opencode) โดยมีการลบการติดตามการใช้งาน (telemetry) และพฤติกรรมการติดต่อกลับเซิร์ฟเวอร์ (phone-home behavior) ออกทั้งหมด ---- +OpenCode โฆษณาตัวเองว่าเป็น "ความเป็นส่วนตัวเป็นอันดับแรก" และ "โอเพนซอร์ส" แต่กลับส่งข้อมูลไปยังบริการบุคคลที่สามหลายแห่งอย่างเงียบเชียบ — การวิเคราะห์การใช้งาน (PostHog), การติดตามข้อมูล (Honeycomb), การแชร์เซสชัน (opncd.ai), การส่งต่อพรอมต์ (opencode.ai/zen), การส่งต่อคำค้นหา (mcp.exa.ai), และการดึงรายชื่อโมเดลที่รั่วไหลที่อยู่ IP (models.dev) ผู้ดูแลโครงการเดิมได้ปฏิเสธในตอนแรกว่ามีการติดตามข้อมูล ([#459](https://github.com/sst/opencode/issues/459)) ก่อนที่จะยอมรับในภายหลัง ผู้ใช้รายงานว่า การปิดการติดตามข้อมูลในไฟล์คอนฟิกไม่ได้หยุดการเชื่อมต่อออกสู่ภายนอกทั้งหมด ([#5554](https://github.com/sst/opencode/issues/5554)) -### การติดตั้ง +Rolandcode ไม่ได้พยายามโน้มน้าว OpenCode ให้เปลี่ยนแปลง มันเพียงแค่ลบการติดตามข้อมูลออกและปล่อยเวอร์ชันที่สะอาด -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# ตัวจัดการแพ็กเกจ -npm i -g opencode-ai@latest # หรือ bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS และ Linux (แนะนำ อัปเดตเสมอ) -brew install opencode # macOS และ Linux (brew formula อย่างเป็นทางการ อัปเดตน้อยกว่า) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # ระบบปฏิบัติการใดก็ได้ -nix run nixpkgs#opencode # หรือ github:anomalyco/opencode สำหรับสาขาพัฒนาล่าสุด -``` +ชื่อนี้มาจากบทกวีของบราวน์นิง *Childe Roland to the Dark Tower Came* (เด็กหนุ่มโรแลนด์มุ่งหน้าสู่หอคอยมืด) — โรแลนด์สามารถไปถึงหอคอยได้ แม้จะมีทุกอย่างพยายามหยุดเขา + +--- + +## สิ่งที่ถูกถอดออก -> [!TIP] -> ลบเวอร์ชันที่เก่ากว่า 0.1.x ก่อนติดตั้ง +| จุดปลายทาง (Endpoint) | สิ่งที่ถูกส่ง | +|----------|-------------| +| `us.i.posthog.com` | สถิติการใช้งาน | +| `api.honeycomb.io` | ข้อมูลการติดตาม, ที่อยู่ IP, ตำแหน่งที่ตั้ง | +| `api.opencode.ai` | เนื้อหาเซสชัน, คำสั่ง (prompts) | +| `opncd.ai` | ข้อมูลการแชร์เซสชัน | +| `opencode.ai/zen/v1` | คำสั่งที่ถูกส่งผ่านเกตเวย์ของ OpenCode | +| `mcp.exa.ai` | คำค้นหา | +| `models.dev` | การดึงรายชื่อโมเดล (รั่วไหล IP) | +| `app.opencode.ai` | การส่งต่อแอปแบบรวม (catch-all app proxy) | -### แอปพลิเคชันเดสก์ท็อป (เบต้า) +แคตตาล็อกโมเดลจะถูกนำเข้า (vendored) ในช่วงเวลาการสร้างจากสแนปช็อตท้องถิ่น — ไม่มีการติดต่อกลับเซิร์ฟเวอร์ขณะรันไทม์ -OpenCode มีให้ใช้งานเป็นแอปพลิเคชันเดสก์ท็อป ดาวน์โหลดโดยตรงจาก [หน้ารุ่น](https://github.com/anomalyco/opencode/releases) หรือ [opencode.ai/download](https://opencode.ai/download) +## การติดตั้ง -| แพลตฟอร์ม | ดาวน์โหลด | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, หรือ AppImage | +ดาวน์โหลดไบนารีจาก [หน้าเวอร์ชัน](https://github.com/TODO/rolandcode/releases) หรือสร้างจากซอร์สโค้ด: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# ดาวน์โหลดสแนปช็อตแคตตาล็อกโมเดล +curl -fsSL -o models-api.json https://models.dev/api.json + +# สร้าง (Build) +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### ไดเรกทอรีการติดตั้ง +ไบนารีจะอยู่ที่ `dist/opencode-linux-x64/bin/rolandcode` (หรือไฟล์เทียบเท่าสำหรับแพลตฟอร์มของคุณ) -สคริปต์การติดตั้งจะใช้ลำดับความสำคัญตามเส้นทางการติดตั้ง: +## การตรวจสอบ -1. `$OPENCODE_INSTALL_DIR` - ไดเรกทอรีการติดตั้งที่กำหนดเอง -2. `$XDG_BIN_DIR` - เส้นทางที่สอดคล้องกับ XDG Base Directory Specification -3. `$HOME/bin` - ไดเรกทอรีไบนารีผู้ใช้มาตรฐาน (หากมีอยู่หรือสามารถสร้างได้) -4. `$HOME/.opencode/bin` - ค่าสำรองเริ่มต้น +ทุกครั้งที่สร้างสามารถตรวจสอบความสะอาดได้: ```bash -# ตัวอย่าง -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### เอเจนต์ +สคริปต์นี้จะค้นหา (grep) ต้นไม้ซอร์สโค้ดทั้งหมดเพื่อหาโดเมนและแพ็กเกจ SDK ที่เกี่ยวข้องกับการติดตามข้อมูลทั้งหมด หากยังมีการอ้างอิงอยู่ การสร้างจะล้มเหลว Grep ไม่เคยโกหก -OpenCode รวมเอเจนต์ในตัวสองตัวที่คุณสามารถสลับได้ด้วยปุ่ม `Tab` +## วิธีการทำงาน -- **build** - เอเจนต์เริ่มต้น มีสิทธิ์เข้าถึงแบบเต็มสำหรับงานพัฒนา -- **plan** - เอเจนต์อ่านอย่างเดียวสำหรับการวิเคราะห์และการสำรวจโค้ด - - ปฏิเสธการแก้ไขไฟล์โดยค่าเริ่มต้น - - ขอสิทธิ์ก่อนเรียกใช้คำสั่ง bash - - เหมาะสำหรับสำรวจโค้ดเบสที่ไม่คุ้นเคยหรือวางแผนการเปลี่ยนแปลง +Rolandcode รักษาชุดแพตช์ขนาดเล็กไว้เหนือ OpenCode ต้นทาง แต่ละครั้งที่แก้ไข (commit) เพื่อลบออกจะจัดการกับปัญหาการติดตามข้อมูลหนึ่งอย่าง: -นอกจากนี้ยังมีเอเจนต์ย่อย **general** สำหรับการค้นหาที่ซับซ้อนและงานหลายขั้นตอน -ใช้ภายในและสามารถเรียกใช้ได้โดยใช้ `@general` ในข้อความ +- `strip-posthog` — สถิติ PostHog +- `strip-honeycomb` — การติดตามข้อมูล Honeycomb +- `strip-exa` — การส่งต่อคำค้นหา mcp.exa.ai +- `strip-opencode-api` — จุดปลายทาง api.opencode.ai และ opncd.ai +- `strip-zen-gateway` — การกำหนดเส้นทางพร็อกซี Zen +- `strip-app-proxy` — พร็อกซีรวม app.opencode.ai +- `strip-share-sync` — การแชร์เซสชันอัตโนมัติ +- `strip-models-dev` — การดึงรายชื่อโมเดลขณะรันไทม์ -เรียนรู้เพิ่มเติมเกี่ยวกับ [เอเจนต์](https://opencode.ai/docs/agents) +การแก้ไขที่เล็กและแยกส่วนสามารถทำ Rebase ได้สะอาดเมื่อต้นทางมีการอัปเดต -### เอกสารประกอบ +## การทดสอบ -สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า OpenCode [**ไปที่เอกสารของเรา**](https://opencode.ai/docs) - -### การมีส่วนร่วม +```bash +# ชุดทดสอบแบบเต็ม (จะรันการทดสอบสิทธิ์ใน Docker เมื่อรันด้วย root) +bash scripts/test.sh -หากคุณสนใจที่จะมีส่วนร่วมใน OpenCode โปรดอ่าน [เอกสารการมีส่วนร่วม](./CONTRIBUTING.md) ก่อนส่ง Pull Request +# เฉพาะชุดหลัก +cd packages/opencode && bun test --timeout 30000 -### การสร้างบน OpenCode +# เฉพาะการทดสอบสิทธิ์ (ต้องไม่ใช่ root หรือใช้ Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -หากคุณทำงานในโปรเจกต์ที่เกี่ยวข้องกับ OpenCode และใช้ "opencode" เป็นส่วนหนึ่งของชื่อ เช่น "opencode-dashboard" หรือ "opencode-mobile" โปรดเพิ่มหมายเหตุใน README ของคุณเพื่อชี้แจงว่าไม่ได้สร้างโดยทีม OpenCode และไม่ได้เกี่ยวข้องกับเราในทางใด +### ปัญหาการทดสอบที่ทราบแล้ว -### คำถามที่พบบ่อย +| การทดสอบ | สถานะ | เหตุผล | +|------|--------|-----| +| `session.llm.stream` (2 จาก 10) | ไม่เสถียร (Flaky) | สถานะเซิร์ฟเวอร์ HTTP แบบจำลองรั่วไหลระหว่างการทดสอบแบบขนาน ผ่าน 10/10 เมื่อรันแยก (`bun test test/session/llm.test.ts`) บักการแยกส่วนการทดสอบของต้นทาง — ไม่ใช่ข้อบกพร่องของโค้ด | +| `tool.write > throws error when OS denies write access` | ล้มเหลวเมื่อเป็น root | Root สามารถข้าม `chmod 0o444` ได้ ผ่านใน Docker เมื่อไม่ใช่ root `scripts/test.sh` จัดการเรื่องนี้โดยอัตโนมัติ | +| `tui config > continues loading when legacy source cannot be stripped` | ล้มเหลวเมื่อเป็น root | ปัญหา root-vs-chmod เดียวกัน ผ่านใน Docker เมื่อไม่ใช่ root | +| `fsmonitor` (2 การทดสอบ) | ข้าม | เฉพาะ Windows (`process.platform === "win32"`) | +| `worktree-remove` (1 การทดสอบ) | ข้าม | เฉพาะ Windows | +| `unicode filenames modification and restore` | ข้าม | ต้นทางข้ามไว้ชัดเจน — บักที่ทราบแล้วซึ่งพวกเขา尚未แก้ไข | -#### ต่างจาก Claude Code อย่างไร? +## ต้นทาง (Upstream) -คล้ายกับ Claude Code มากในแง่ความสามารถ นี่คือความแตกต่างหลัก: +นี่คือการแยกสาขาของ [anomalyco/opencode](https://github.com/anomalyco/opencode) (ลิขสิทธิ์ MIT) โค้ดดั้งเดิมทั้งหมดเป็นของพวกเขา ประวัติการแก้ไข (commit history) ของต้นทางทั้งหมดได้รับการรักษาไว้ — คุณสามารถเห็นได้อย่างชัดเจนว่าอะไรถูกเปลี่ยนและทำไม -- โอเพนซอร์ส 100% -- ไม่ผูกมัดกับผู้ให้บริการใดๆ แม้ว่าเราจะแนะนำโมเดลที่เราจัดหาให้ผ่าน [OpenCode Zen](https://opencode.ai/zen) OpenCode สามารถใช้กับ Claude, OpenAI, Google หรือแม้กระทั่งโมเดลในเครื่องได้ เมื่อโมเดลพัฒนาช่องว่างระหว่างพวกมันจะปิดลงและราคาจะลดลง ดังนั้นการไม่ผูกมัดกับผู้ให้บริการจึงสำคัญ -- รองรับ LSP ใช้งานได้ทันทีหลังการติดตั้งโดยไม่ต้องปรับแต่งหรือเปลี่ยนแปลงฟังก์ชันการทำงานใด ๆ -- เน้นที่ TUI OpenCode สร้างโดยผู้ใช้ neovim และผู้สร้าง [terminal.shop](https://terminal.shop) เราจะผลักดันขีดจำกัดของสิ่งที่เป็นไปได้ในเทอร์มินัล -- สถาปัตยกรรมไคลเอนต์/เซิร์ฟเวอร์ ตัวอย่างเช่น อาจอนุญาตให้ OpenCode ทำงานบนคอมพิวเตอร์ของคุณ ในขณะที่คุณสามารถขับเคลื่อนจากระยะไกลผ่านแอปมือถือ หมายความว่า TUI frontend เป็นหนึ่งในไคลเอนต์ที่เป็นไปได้เท่านั้น +OpenCode เป็นเอเจนต์เขียนโค้ด AI ที่มีความสามารถ พร้อม TUI ที่ยอดเยี่ยม การรองรับ LSP และความยืดหยุ่นของหลายผู้ให้บริการ เราใช้มันเพราะเป็นซอฟต์แวร์ที่ดี เราลบการติดตามข้อมูลออกเพราะคำอ้างเรื่องความเป็นส่วนตัวไม่ตรงกับพฤติกรรม ---- +## ใบอนุญาต -**ร่วมชุมชนของเรา** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — เหมือนกับต้นทาง ดูที่ [LICENSE](LICENSE) diff --git a/README.tr.md b/README.tr.md index e88b40f875..d354dfa0a5 100644 --- a/README.tr.md +++ b/README.tr.md @@ -1,18 +1,4 @@ -
-
-
-
Açık kaynaklı yapay zeka kodlama asistanı.
- +# RolandcodeEnglish | @@ -39,103 +25,102 @@ Tiếng Việt
-[](https://opencode.ai) +Tüm telemetri ve uzaktan bağlantı ("phone-home") davranışları kaldırılmış, [OpenCode](https://github.com/anomalyco/opencode) projesinin temiz bir çatalı (fork) (fork). ---- +OpenCode kendini "önce gizlilik" ve "açık kaynak" olarak pazarlıyor, ancak sessizce çok sayıda üçüncü taraf servise veri gönderiyor — analitik (PostHog), telemetri (Honeycomb), oturum paylaşımı (opncd.ai), istek (prompt) yönlendirme (opencode.ai/zen), arama sorgusu yönlendirme (mcp.exa.ai) ve IP sızdırma riski taşıyan model listesi çekimleri (models.dev). Bakım görevlileri ilk olarak telemetrinin varlığını inkar ettiler ([#459](https://github.com/sst/opencode/issues/459)), ardından kabul ettiler. Kullanıcılar, yapılandırma dosyasında telemetriyi devre dışı bırakmanın giden bağlantıları tamamen durdurmadığını raporluyor ([#5554](https://github.com/sst/opencode/issues/5554)). -### Kurulum +Rolandcode, OpenCode'yi değiştirmeye ikna etmeye çalışmaz. Sadece onların telemetrilerini kaldırır ve temiz derlemeler (builds) sunar. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Paket yöneticileri -npm i -g opencode-ai@latest # veya bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS ve Linux (önerilir, her zaman güncel) -brew install opencode # macOS ve Linux (resmi brew formülü, daha az güncellenir) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # Tüm işletim sistemleri -nix run nixpkgs#opencode # veya en güncel geliştirme dalı için github:anomalyco/opencode -``` +İsim, Browning'in *Childe Roland to the Dark Tower Came* eserinden geliyor — Roland, onu durdurmaya çalışan her şeye rağmen kuleye ulaşır. -> [!TIP] -> Kurulumdan önce 0.1.x'ten eski sürümleri kaldırın. +## Ne Kaldırıldı -### Masaüstü Uygulaması (BETA) +| Endpoint | Ne Gönderdi | +|----------|-------------| +| `us.i.posthog.com` | Kullanım analitiği | +| `api.honeycomb.io` | Telemetri, IP adresi, konum | +| `api.opencode.ai` | Oturum içeriği, istekler (prompts) | +| `opncd.ai` | Oturum paylaşımı verisi | +| `opencode.ai/zen/v1` | OpenCode'nin kapısı üzerinden yönlendirilen istekler | +| `mcp.exa.ai` | Arama sorguları | +| `models.dev` | Model listesi çekimleri (IP sızdırır) | +| `app.opencode.ai` | Kapsamlı uygulama (catch-all) proxy | -OpenCode ayrıca masaüstü uygulaması olarak da mevcuttur. Doğrudan [sürüm sayfasından](https://github.com/anomalyco/opencode/releases) veya [opencode.ai/download](https://opencode.ai/download) adresinden indirebilirsiniz. +Model kataloğu, derleme zamanında yerel bir anlık görüntüden temin edilir — çalışma zamanında uzaktan bağlantı (phone-home) yok. -| Platform | İndirme | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` veya AppImage | +## Kurulum + +[Sürümler sayfasından](https://github.com/TODO/rolandcode/releases) bir yürütülebilir dosya (binary) indirin veya kaynaktan derleyin: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Bir model kataloğu anlık görüntüsü indirin +curl -fsSL -o models-api.json https://models.dev/api.json + +# Derle +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Kurulum Dizini (Installation Directory) +Yürütülebilir dosya `dist/opencode-linux-x64/bin/rolandcode` konumunda (veya platformunuz için eşdeğer) bulunur. -Kurulum betiği (install script), kurulum yolu (installation path) için aşağıdaki öncelik sırasını takip eder: +## Doğrulama -1. `$OPENCODE_INSTALL_DIR` - Özel kurulum dizini -2. `$XDG_BIN_DIR` - XDG Base Directory Specification uyumlu yol -3. `$HOME/bin` - Standart kullanıcı binary dizini (varsa veya oluşturulabiliyorsa) -4. `$HOME/.opencode/bin` - Varsayılan yedek konum +Her derleme temiz olarak doğrulanabilir: ```bash -# Örnekler -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Ajanlar +Bu komut, tüm kaynak ağacında bilinen telemetri alan adları ve SDK paketleri için grep yapar. Herhangi bir referans kalırsa derleme başarısız olur. Grep yalan söylemez. -OpenCode, `Tab` tuşuyla aralarında geçiş yapabileceğiniz iki yerleşik (built-in) ajan içerir. +## Nasıl Çalışır -- **build** - Varsayılan, geliştirme çalışmaları için tam erişimli ajan -- **plan** - Analiz ve kod keşfi için salt okunur ajan - - Varsayılan olarak dosya düzenlemelerini reddeder - - Bash komutlarını çalıştırmadan önce izin ister - - Tanımadığınız kod tabanlarını keşfetmek veya değişiklikleri planlamak için ideal +Rolandcode, yukarı akış (upstream) OpenCode üzerinde küçük bir yama (patch) seti tutar. Her "strip" commit'i bir telemetri endişesini kaldırır: -Ayrıca, karmaşık aramalar ve çok adımlı görevler için bir **genel** alt ajan bulunmaktadır. -Bu dahili olarak kullanılır ve mesajlarda `@general` ile çağrılabilir. +- `strip-posthog` — PostHog analitikleri +- `strip-honeycomb` — Honeycomb telemetrisi +- `strip-exa` — mcp.exa.ai arama yönlendirme +- `strip-opencode-api` — api.opencode.ai ve opncd.ai uç noktaları +- `strip-zen-gateway` — Zen proxy yönlendirme +- `strip-app-proxy` — app.opencode.ai kapsamlı proxy +- `strip-share-sync` — Otomatik oturum paylaşımı +- `strip-models-dev` — Çalışma zamanında model listesi çekimi -[Ajanlar](https://opencode.ai/docs/agents) hakkında daha fazla bilgi edinin. +Küçük, izole commit'ler, yukarı akış hareket ettiğinde temiz bir şekilde rebase olur. -### Dokümantasyon +## Test Etme -OpenCode'u nasıl yapılandıracağınız hakkında daha fazla bilgi için [**dokümantasyonumuza göz atın**](https://opencode.ai/docs). - -### Katkıda Bulunma +```bash +# Tam dizi (kök kullanıcı olarak çalışıldığında Docker'da izin testlerini çalıştırır) +bash scripts/test.sh -OpenCode'a katkıda bulunmak istiyorsanız, lütfen bir pull request göndermeden önce [katkıda bulunma dokümanlarımızı](./CONTRIBUTING.md) okuyun. +# Sadece ana dizi +cd packages/opencode && bun test --timeout 30000 -### OpenCode Üzerine Geliştirme +# Sadece izin testleri (kök olmamalı veya Docker kullanılmalı) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -OpenCode ile ilgili bir proje üzerinde çalışıyorsanız ve projenizin adının bir parçası olarak "opencode" kullanıyorsanız (örneğin, "opencode-dashboard" veya "opencode-mobile"), lütfen README dosyanıza projenin OpenCode ekibi tarafından geliştirilmediğini ve bizimle hiçbir şekilde bağlantılı olmadığını belirten bir not ekleyin. +### Bilinen Test Sorunları -### SSS +| Test | Durum | Neden | +|------|--------|-----| +| `session.llm.stream` (10'dan 2'si) | Kararsız (Flaky) | Mock HTTP sunucusu durumu paralel testler arasında sızdırıyor. İzole çalıştırıldığında 10/10 geçer (`bun test test/session/llm.test.ts`). Yukarı akış test izolasyon hatası — kod hatası değil. | +| `tool.write > işletim sistemi yazma erişimini reddettiğinde hata fırlatır` | Kök kullanıcı olarak başarısız | Kök kullanıcı `chmod 0o444`'ü atlatır. Docker'da kök olmayan kullanıcı olarak geçer. `scripts/test.sh` bunu otomatik olarak yönetir. | +| `tui config > eski kaynak kaldırılamadığında yükleme devam eder` | Kök kullanıcı olarak başarısız | Aynı kök-vs-chmod sorunu. Docker'da kök olmayan kullanıcı olarak geçer. | +| `fsmonitor` (2 test) | Atlandı | Sadece Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 test) | Atlandı | Sadece Windows. | +| `unicode dosya adları değişiklik ve geri yükleme` | Atlandı | Yukarı akış açıkça atlandı — düzeltmedikleri bilinen hata. | -#### Bu Claude Code'dan nasıl farklı? +## Kaynak Proje (Upstream) -Yetenekler açısından Claude Code'a çok benzer. İşte temel farklar: +Bu, [anomalyco/opencode](https://github.com/anomalyco/opencode) projesinin bir çatalıdır (MIT lisansı). Tüm orijinal kod onların. Tam yukarı akış commit geçmişi korunur — ne değişti ve neden değişti tam olarak görebilirsiniz. -- %100 açık kaynak -- Herhangi bir sağlayıcıya bağlı değil. [OpenCode Zen](https://opencode.ai/zen) üzerinden sunduğumuz modelleri önermekle birlikte; OpenCode, Claude, OpenAI, Google veya hatta yerel modellerle kullanılabilir. Modeller geliştikçe aralarındaki farklar kapanacak ve fiyatlar düşecek, bu nedenle sağlayıcıdan bağımsız olmak önemlidir. -- Kurulum gerektirmeyen hazır LSP desteği -- TUI odaklı yaklaşım. OpenCode, neovim kullanıcıları ve [terminal.shop](https://terminal.shop)'un geliştiricileri tarafından geliştirilmektedir; terminalde olabileceklerin sınırlarını zorlayacağız. -- İstemci/sunucu (client/server) mimarisi. Bu, örneğin OpenCode'un bilgisayarınızda çalışması ve siz onu bir mobil uygulamadan uzaktan yönetmenizi sağlar. TUI arayüzü olası istemcilerden sadece biridir. +OpenCode, harika bir TUI, LSP desteği ve çoklu sağlayıcı esnekliği ile yetenekli bir AI kodlama ajanıdır. İyi bir yazılım olduğu için kullanıyoruz. Telemetriyi kaldırmamızın nedeni ise gizlilik iddialarının davranışla eşleşmemesidir. ---- +## Lisans -**Topluluğumuza katılın** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — kaynak projeyle aynı. [LICENSE](LICENSE) dosyasına bakın. diff --git a/README.uk.md b/README.uk.md index a1a0259b6d..737d6dff96 100644 --- a/README.uk.md +++ b/README.uk.md @@ -1,18 +1,4 @@ -
-
-
-
AI-агент для програмування з відкритим кодом.
- +# RolandcodeEnglish | @@ -39,104 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Чиста форка [OpenCode](https://github.com/anomalyco/opencode) з повним прибиранням телеметрії та поведінки зворотного зв'язку з сервером. ---- +OpenCode позиціонує себе як «приватність насамперед» та «відкритий код», але мовчки передає дані до кількох сторонніх сервісів — аналітика (PostHog), телеметрія (Honeycomb), спільний доступ до сесій (opncd.ai), проксі запиту (opencode.ai/zen), пересилання пошукових запитів (mcp.exa.ai), та отримання списків моделей, що розкривають IP (models.dev). Розробники спочатку заперечували існування телеметрії ([#459](https://github.com/sst/opencode/issues/459)), а потім визнали це. Користувачі повідомляють, що вимкнення телеметрії в конфігурації не повністю зупиняє вихідні з'єднання ([#5554](https://github.com/sst/opencode/issues/5554)). -### Встановлення +Rolandcode не намагається переконати OpenCode щось змінити. Він просто прибирає їхню телеметрію та видає чисті збірки. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Менеджери пакетів -npm i -g opencode-ai@latest # або bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS і Linux (рекомендовано, завжди актуально) -brew install opencode # macOS і Linux (офіційна формула Homebrew, оновлюється рідше) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # Будь-яка ОС -nix run nixpkgs#opencode # або github:anomalyco/opencode для найновішої dev-гілки -``` +Назва походить від поеми Браунінга «Чайльд Роланд прийшов до Темної Вежі» — Роланд досягає вежі, попри все, що намагається зупинити його. + +--- + +## Що прибрано -> [!TIP] -> Перед встановленням видаліть версії старші за 0.1.x. +| Кінцева точка | Що відправлялося | +|----------|-------------| +| `us.i.posthog.com` | Аналітика використання | +| `api.honeycomb.io` | Телеметрія, IP-адреса, локація | +| `api.opencode.ai` | Вміст сесії, промпти | +| `opncd.ai` | Дані спільного доступу до сесій | +| `opencode.ai/zen/v1` | Промпти, проксі через шлюз OpenCode | +| `mcp.exa.ai` | Пошукові запити | +| `models.dev` | Отримання списків моделей (розкриває IP) | +| `app.opencode.ai` | Універсальний проксі-додаток | -### Десктопний застосунок (BETA) +Каталог моделей включається під час збірки з локального сніпшоту — без зв'язку з сервером під час виконання. -OpenCode також доступний як десктопний застосунок. Завантажуйте напряму зі [сторінки релізів](https://github.com/anomalyco/opencode/releases) або [opencode.ai/download](https://opencode.ai/download). +## Встановлення -| Платформа | Завантаження | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm` або AppImage | +Завантажте бінарний файл зі [сторінки релізів](https://github.com/TODO/rolandcode/releases), або зберіть з джерельного коду: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Завантажте сніпшот каталогу моделей +curl -fsSL -o models-api.json https://models.dev/api.json + +# Збірка +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Каталог встановлення +Бінарний файл знаходиться за шляхом `dist/opencode-linux-x64/bin/rolandcode` (або аналогічним для вашої платформи). -Скрипт встановлення дотримується такого порядку пріоритету для шляху встановлення: +## Перевірка -1. `$OPENCODE_INSTALL_DIR` - Користувацький каталог встановлення -2. `$XDG_BIN_DIR` - Шлях, сумісний зі специфікацією XDG Base Directory -3. `$HOME/bin` - Стандартний каталог користувацьких бінарників (якщо існує або його можна створити) -4. `$HOME/.opencode/bin` - Резервний варіант за замовчуванням +Кожен реліз можна перевірити на чистоту: ```bash -# Приклади -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Агенти +Ця команда перевіряє все дерево джерельного коду на наявність відомих доменів телеметрії та пакетів SDK. Якщо залишається будь-який посилання, збірка не вдається. Grep не бреше. -OpenCode містить два вбудовані агенти, між якими можна перемикатися клавішею `Tab`. +## Як це працює -- **build** - Агент за замовчуванням із повним доступом для завдань розробки -- **plan** - Агент лише для читання для аналізу та дослідження коду - - За замовчуванням забороняє редагування файлів - - Запитує дозвіл перед запуском bash-команд - - Ідеально підходить для дослідження незнайомих кодових баз або планування змін +Rolandcode підтримує невеликий набір патчів поверх вихідного OpenCode. Кожен комміт прибирання видаляє одну загрозу телеметрії: -Також доступний допоміжний агент **general** для складного пошуку та багатокрокових завдань. -Він використовується всередині системи й може бути викликаний у повідомленнях через `@general`. +- `strip-posthog` — Аналітика PostHog +- `strip-honeycomb` — Телеметрія Honeycomb +- `strip-exa` — Пересилання пошуку mcp.exa.ai +- `strip-opencode-api` — Кінцеві точки api.opencode.ai та opncd.ai +- `strip-zen-gateway` — Маршрутизація проксі Zen +- `strip-app-proxy` — Універсальний проксі app.opencode.ai +- `strip-share-sync` — Автоматичний спільний доступ до сесій +- `strip-models-dev` — Отримання списків моделей під час виконання -Дізнайтеся більше про [agents](https://opencode.ai/docs/agents). +Невеликі, ізольовані комміти чистимо ребейсуються, коли змінюється вихідний код. -### Документація +## Тестування -Щоб дізнатися більше про налаштування OpenCode, [**перейдіть до нашої документації**](https://opencode.ai/docs). - -### Внесок +```bash +# Повний набір (виконує тести дозволів у Docker, коли працює як root) +bash scripts/test.sh -Якщо ви хочете зробити внесок в OpenCode, будь ласка, прочитайте нашу [документацію для контриб'юторів](./CONTRIBUTING.md) перед надсиланням pull request. +# Тільки основний набір +cd packages/opencode && bun test --timeout 30000 -### Проєкти на базі OpenCode +# Тільки тести дозволів (має бути не-root, або використати Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Якщо ви працюєте над проєктом, пов'язаним з OpenCode, і використовуєте "opencode" у назві, наприклад "opencode-dashboard" або "opencode-mobile", додайте примітку до свого README. -Уточніть, що цей проєкт не створений командою OpenCode і жодним чином не афілійований із нами. +### Відомі проблеми з тестами -### FAQ +| Тест | Статус | Чому | +|------|--------|-----| +| `session.llm.stream` (2 з 10) | Нестабільний | Стан мок-сервера HTTP витекає між паралельними тестами. Проходить 10/10 при виконанні в ізольованому режимі (`bun test test/session/llm.test.ts`). Помилка ізоляції тестів у вихідному коді — не дефект коду. | +| `tool.write > throws error when OS denies write access` | Не виходить як root | Root обходить `chmod 0o444`. Проходить у Docker як не-root. `scripts/test.sh` обробляє це автоматично. | +| `tui config > continues loading when legacy source cannot be stripped` | Не виходить як root | Та сама проблема root-vs-chmod. Проходить у Docker як не-root. | +| `fsmonitor` (2 тести) | Пропущено | Тільки для Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 тест) | Пропущено | Тільки для Windows. | +| `unicode filenames modification and restore` | Пропущено | Вихідний код явно пропустив — відома помилка, яку вони не виправили. | -#### Чим це відрізняється від Claude Code? +## Вихідний репозиторій (Upstream) -За можливостями це дуже схоже на Claude Code. Ось ключові відмінності: +Це форка [anomalyco/opencode](https://github.com/anomalyco/opencode) (ліцензія MIT). Весь оригінальний код належить їм. Повна історія коммітів вихідного коду збережена — ви можете бачити саме те, що було змінено і чому. -- 100% open source -- Немає прив'язки до конкретного провайдера. Ми рекомендуємо моделі, які надаємо через [OpenCode Zen](https://opencode.ai/zen), але OpenCode також працює з Claude, OpenAI, Google і навіть локальними моделями. З розвитком моделей різниця між ними зменшуватиметься, а ціни падатимуть, тому незалежність від провайдера має значення. -- Підтримка LSP з коробки -- Фокус на TUI. OpenCode створено користувачами neovim та авторами [terminal.shop](https://terminal.shop); ми й надалі розширюватимемо межі можливого в терміналі. -- Клієнт-серверна архітектура. Наприклад, це дає змогу запускати OpenCode на вашому комп'ютері й керувати ним віддалено з мобільного застосунку, тобто TUI-фронтенд - лише один із можливих клієнтів. +OpenCode — це потужний агент для написання коду з чудовим TUI, підтримкою LSP та гнучкістю для кількох провайдерів. Ми використовуємо його, тому що це хороше програмне забезпечення. Ми прибираємо телеметрію, тому що заяви про приватність не відповідають поведінці. ---- +## Ліцензія -**Приєднуйтеся до нашої спільноти** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — така ж, як у вихідному коді. Див. [LICENSE](LICENSE). diff --git a/README.vi.md b/README.vi.md index 0932c50f78..59093b3a93 100644 --- a/README.vi.md +++ b/README.vi.md @@ -1,18 +1,4 @@ -
-
-
-
Trợ lý lập trình AI mã nguồn mở.
- +# RolandcodeEnglish | @@ -39,103 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +Một bản fork sạch sẽ của [OpenCode](https://github.com/anomalyco/opencode) với tất cả telemetry và hành vi phone-home bị loại bỏ. ---- +OpenCode tự quảng bá mình là "ưu tiên quyền riêng tư" và "mã nguồn mở", nhưng âm thầm truyền tải dữ liệu đến nhiều dịch vụ bên thứ ba — phân tích (PostHog), telemetry (Honeycomb), chia sẻ phiên (opncd.ai), proxy prompt (opencode.ai/zen), chuyển tiếp truy vấn tìm kiếm (mcp.exa.ai), và lấy danh sách mô hình rò rỉ IP (models.dev). Người duy trì ban đầu phủ nhận việc tồn tại telemetry ([#459](https://github.com/sst/opencode/issues/459)), sau đó thừa nhận. Người dùng báo cáo rằng việc tắt telemetry trong cấu hình không hoàn toàn dừng các kết nối đi ra ([#5554](https://github.com/sst/opencode/issues/5554)). -### Cài đặt +Rolandcode không cố gắng thuyết phục OpenCode thay đổi. Nó chỉ loại bỏ telemetry của họ và phân phối các bản build sạch. -```bash -# YOLO -curl -fsSL https://opencode.ai/install | bash - -# Các trình quản lý gói (Package managers) -npm i -g opencode-ai@latest # hoặc bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS và Linux (khuyên dùng, luôn cập nhật) -brew install opencode # macOS và Linux (công thức brew chính thức, ít cập nhật hơn) -sudo pacman -S opencode # Arch Linux (Bản ổn định) -paru -S opencode-bin # Arch Linux (Bản mới nhất từ AUR) -mise use -g opencode # Mọi hệ điều hành -nix run nixpkgs#opencode # hoặc github:anomalyco/opencode cho nhánh dev mới nhất -``` +Tên gọi lấy từ tác phẩm của Browning *Childe Roland đến Tháp Tối Tăm* — Roland đến được tháp bất chấp mọi thứ cố gắng ngăn cản anh ta. + +--- + +## Những gì bị loại bỏ -> [!TIP] -> Hãy xóa các phiên bản cũ hơn 0.1.x trước khi cài đặt. +| Endpoint | Dữ liệu gửi đi | +|----------|-------------| +| `us.i.posthog.com` | Phân tích sử dụng | +| `api.honeycomb.io` | Telemetry, địa chỉ IP, vị trí | +| `api.opencode.ai` | Nội dung phiên, prompt | +| `opncd.ai` | Dữ liệu chia sẻ phiên | +| `opencode.ai/zen/v1` | Prompt được proxy qua cổng của OpenCode | +| `mcp.exa.ai` | Truy vấn tìm kiếm | +| `models.dev` | Lấy danh sách mô hình (rò rỉ IP) | +| `app.opencode.ai` | Proxy ứng dụng tổng hợp | -### Ứng dụng Desktop (BETA) +Danh mục mô hình được đóng gói tại thời điểm build từ một bản chụp địa phương — không có phone-home lúc runtime. -OpenCode cũng có sẵn dưới dạng ứng dụng desktop. Tải trực tiếp từ [trang releases](https://github.com/anomalyco/opencode/releases) hoặc [opencode.ai/download](https://opencode.ai/download). +## Cài đặt -| Nền tảng | Tải xuống | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, hoặc AppImage | +Tải một binary từ [trang releases](https://github.com/TODO/rolandcode/releases), hoặc build từ nguồn: ```bash -# macOS (Homebrew) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# Tải bản chụp danh mục mô hình +curl -fsSL -o models-api.json https://models.dev/api.json + +# Build +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### Thư mục cài đặt +Binary nằm tại `dist/opencode-linux-x64/bin/rolandcode` (hoặc tương đương cho nền tảng của bạn). -Tập lệnh cài đặt tuân theo thứ tự ưu tiên sau cho đường dẫn cài đặt: +## Xác minh -1. `$OPENCODE_INSTALL_DIR` - Thư mục cài đặt tùy chỉnh -2. `$XDG_BIN_DIR` - Đường dẫn tuân thủ XDG Base Directory Specification -3. `$HOME/bin` - Thư mục nhị phân tiêu chuẩn của người dùng (nếu tồn tại hoặc có thể tạo) -4. `$HOME/.opencode/bin` - Mặc định dự phòng +Mọi bản build đều có thể được xác minh sạch sẽ: ```bash -# Ví dụ -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents (Đại diện) +Script này grep toàn bộ cây nguồn cho tất cả các miền telemetry và gói SDK đã biết. Nếu còn bất kỳ tham chiếu nào, build sẽ thất bại. Grep không nói dối. -OpenCode bao gồm hai agent được tích hợp sẵn mà bạn có thể chuyển đổi bằng phím `Tab`. +## Cách hoạt động -- **build** - Agent mặc định, có toàn quyền truy cập cho công việc lập trình -- **plan** - Agent chỉ đọc dùng để phân tích và khám phá mã nguồn - - Mặc định từ chối việc chỉnh sửa tệp - - Hỏi quyền trước khi chạy các lệnh bash - - Lý tưởng để khám phá các codebase lạ hoặc lên kế hoạch thay đổi +Rolandcode duy trì một bộ vá nhỏ trên đầu OpenCode upstream. Mỗi commit strip loại bỏ một mối quan tâm về telemetry: -Ngoài ra còn có một subagent **general** dùng cho các tìm kiếm phức tạp và tác vụ nhiều bước. -Agent này được sử dụng nội bộ và có thể gọi bằng cách dùng `@general` trong tin nhắn. +- `strip-posthog` — Phân tích PostHog +- `strip-honeycomb` — Telemetry Honeycomb +- `strip-exa` — Chuyển tiếp tìm kiếm mcp.exa.ai +- `strip-opencode-api` — Các endpoint api.opencode.ai và opncd.ai +- `strip-zen-gateway` — Định tuyến proxy Zen +- `strip-app-proxy` — Proxy tổng hợp app.opencode.ai +- `strip-share-sync` — Chia sẻ phiên tự động +- `strip-models-dev` — Lấy danh sách mô hình lúc runtime -Tìm hiểu thêm về [agents](https://opencode.ai/docs/agents). +Các commit nhỏ, biệt lập rebase sạch sẽ khi upstream di chuyển. -### Tài liệu +## Kiểm thử -Để biết thêm thông tin về cách cấu hình OpenCode, [**hãy truy cập tài liệu của chúng tôi**](https://opencode.ai/docs). - -### Đóng góp +```bash +# Bộ đầy đủ (chạy kiểm tra quyền hạn trong Docker khi chạy dưới quyền root) +bash scripts/test.sh -Nếu bạn muốn đóng góp cho OpenCode, vui lòng đọc [tài liệu hướng dẫn đóng góp](./CONTRIBUTING.md) trước khi gửi pull request. +# Chỉ bộ chính +cd packages/opencode && bun test --timeout 30000 -### Xây dựng trên nền tảng OpenCode +# Chỉ kiểm tra quyền hạn (phải không phải root, hoặc dùng Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -Nếu bạn đang làm việc trên một dự án liên quan đến OpenCode và sử dụng "opencode" như một phần của tên dự án, ví dụ "opencode-dashboard" hoặc "opencode-mobile", vui lòng thêm một ghi chú vào README của bạn để làm rõ rằng dự án đó không được xây dựng bởi đội ngũ OpenCode và không liên kết với chúng tôi dưới bất kỳ hình thức nào. +### Vấn đề kiểm thử đã biết -### Các câu hỏi thường gặp (FAQ) +| Kiểm thử | Trạng thái | Tại sao | +|------|--------|-----| +| `session.llm.stream` (2 trong 10) | Không ổn định (Flaky) | Trạng thái máy chủ HTTP giả mạo rò rỉ giữa các kiểm thử song song. Đạt 10/10 khi chạy biệt lập (`bun test test/session/llm.test.ts`). Lỗi biệt lập kiểm thử upstream — không phải lỗi mã. | +| `tool.write > throws error when OS denies write access` | Thất bại khi là root | Root bỏ qua `chmod 0o444`. Đạt trong Docker khi không phải root. `scripts/test.sh` xử lý điều này tự động. | +| `tui config > continues loading when legacy source cannot be stripped` | Thất bại khi là root | Vấn đề root-vs-chmod tương tự. Đạt trong Docker khi không phải root. | +| `fsmonitor` (2 kiểm thử) | Bỏ qua | Chỉ dành cho Windows (`process.platform === "win32"`). | +| `worktree-remove` (1 kiểm thử) | Bỏ qua | Chỉ dành cho Windows. | +| `unicode filenames modification and restore` | Bỏ qua | Upstream bỏ qua rõ ràng — lỗi đã biết họ chưa sửa. | -#### OpenCode khác biệt thế nào so với Claude Code? +## Upstream -Về mặt tính năng, nó rất giống Claude Code. Dưới đây là những điểm khác biệt chính: +Đây là bản fork của [anomalyco/opencode](https://github.com/anomalyco/opencode) (giấy phép MIT). Tất cả mã nguồn gốc là của họ. Lịch sử commit upstream đầy đủ được lưu giữ — bạn có thể thấy chính xác những gì đã thay đổi và tại sao. -- 100% mã nguồn mở -- Không bị ràng buộc với bất kỳ nhà cung cấp nào. Mặc dù chúng tôi khuyên dùng các mô hình được cung cấp qua [OpenCode Zen](https://opencode.ai/zen), OpenCode có thể được sử dụng với Claude, OpenAI, Google, hoặc thậm chí các mô hình chạy cục bộ. Khi các mô hình phát triển, khoảng cách giữa chúng sẽ thu hẹp lại và giá cả sẽ giảm, vì vậy việc không phụ thuộc vào nhà cung cấp là rất quan trọng. -- Hỗ trợ LSP ngay từ đầu -- Tập trung vào TUI (Giao diện người dùng dòng lệnh). OpenCode được xây dựng bởi những người dùng neovim và đội ngũ tạo ra [terminal.shop](https://terminal.shop); chúng tôi sẽ đẩy giới hạn của những gì có thể làm được trên terminal lên mức tối đa. -- Kiến trúc client/server. Chẳng hạn, điều này cho phép OpenCode chạy trên máy tính của bạn trong khi bạn điều khiển nó từ xa qua một ứng dụng di động, nghĩa là frontend TUI chỉ là một trong những client có thể dùng. +OpenCode là một tác nhân lập trình AI có năng lực với TUI tuyệt vời, hỗ trợ LSP, và tính linh hoạt đa nhà cung cấp. Chúng tôi sử dụng nó vì nó là phần mềm tốt. Chúng tôi loại bỏ telemetry vì các tuyên bố về quyền riêng tư không khớp với hành vi. ---- +## Giấy phép -**Tham gia cộng đồng của chúng tôi** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — giống như upstream. Xem [LICENSE](LICENSE). diff --git a/README.zh.md b/README.zh.md index b11d9857c9..96f2e03de1 100644 --- a/README.zh.md +++ b/README.zh.md @@ -1,18 +1,4 @@ -
-
-
-
开源的 AI Coding Agent。
- +# RolandcodeEnglish | @@ -39,102 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +[OpenCode](https://github.com/anomalyco/opencode) 的一个干净分支,移除了所有遥测和回连(phone-home)行为。 ---- +OpenCode 宣传自己是“隐私优先”和“开源”的,但静默地将数据传输到多个第三方服务——分析(PostHog)、遥测(Honeycomb)、会话共享(opncd.ai)、提示词代理(opencode.ai/zen)、搜索查询转发(mcp.exa.ai)以及泄露 IP 的模型列表获取(models.dev)。维护者最初否认存在遥测([#459](https://github.com/sst/opencode/issues/459)),随后又承认了。用户报告称,在配置中禁用遥测并不能完全停止出站连接([#5554](https://github.com/sst/opencode/issues/5554))。 -### 安装 +Rolandcode 不试图说服 OpenCode 做出改变。它只是剥离他们的遥测并发布干净的构建版本。 -```bash -# 直接安装 (YOLO) -curl -fsSL https://opencode.ai/install | bash - -# 软件包管理器 -npm i -g opencode-ai@latest # 也可使用 bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS 和 Linux(推荐,始终保持最新) -brew install opencode # macOS 和 Linux(官方 brew formula,更新频率较低) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # 任意系统 -nix run nixpkgs#opencode # 或用 github:anomalyco/opencode 获取最新 dev 分支 -``` +名字源自布朗宁的《奇尔德·罗兰来到黑塔》(*Childe Roland to the Dark Tower Came*)——罗兰不顾一切阻碍,最终抵达了塔楼。 + +--- + +## 移除的内容 -> [!TIP] -> 安装前请先移除 0.1.x 之前的旧版本。 +| 端点 | 发送了什么 | +|----------|-------------| +| `us.i.posthog.com` | 使用分析 | +| `api.honeycomb.io` | 遥测、IP 地址、位置 | +| `api.opencode.ai` | 会话内容、提示词 | +| `opncd.ai` | 会话共享数据 | +| `opencode.ai/zen/v1` | 通过 OpenCode 网关代理的提示词 | +| `mcp.exa.ai` | 搜索查询 | +| `models.dev` | 模型列表获取(泄露 IP) | +| `app.opencode.ai` | 通用应用代理 | -### 桌面应用程序 (BETA) +模型目录在构建时从本地快照嵌入——没有运行时回连。 -OpenCode 也提供桌面版应用。可直接从 [发布页 (releases page)](https://github.com/anomalyco/opencode/releases) 或 [opencode.ai/download](https://opencode.ai/download) 下载。 +## 安装 -| 平台 | 下载文件 | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`、`.rpm` 或 AppImage | +从 [发布页面](https://github.com/TODO/rolandcode/releases) 下载二进制文件,或从源码构建: ```bash -# macOS (Homebrew Cask) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# 下载模型目录快照 +curl -fsSL -o models-api.json https://models.dev/api.json + +# 构建 +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### 安装目录 +二进制文件位于 `dist/opencode-linux-x64/bin/rolandcode`(或您平台的等效路径)。 -安装脚本按照以下优先级决定安装路径: +## 验证 -1. `$OPENCODE_INSTALL_DIR` - 自定义安装目录 -2. `$XDG_BIN_DIR` - 符合 XDG 基础目录规范的路径 -3. `$HOME/bin` - 如果存在或可创建的用户二进制目录 -4. `$HOME/.opencode/bin` - 默认备用路径 +每个构建都可以验证为干净: ```bash -# 示例 -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +这会在整个源码树中 grep 所有已知的遥测域名和 SDK 包。如果仍有引用,构建将失败。grep 不会撒谎。 -OpenCode 内置两种 Agent,可用 `Tab` 键快速切换: +## 工作原理 -- **build** - 默认模式,具备完整权限,适合开发工作 -- **plan** - 只读模式,适合代码分析与探索 - - 默认拒绝修改文件 - - 运行 bash 命令前会询问 - - 便于探索未知代码库或规划改动 +Rolandcode 在上游 OpenCode 之上维护一个小的补丁集。每个剥离提交移除一个遥测关注点: -另外还包含一个 **general** 子 Agent,用于复杂搜索和多步任务,内部使用,也可在消息中输入 `@general` 调用。 +- `strip-posthog` — PostHog 分析 +- `strip-honeycomb` — Honeycomb 遥测 +- `strip-exa` — mcp.exa.ai 搜索转发 +- `strip-opencode-api` — api.opencode.ai 和 opncd.ai 端点 +- `strip-zen-gateway` — Zen 代理路由 +- `strip-app-proxy` — app.opencode.ai 通用代理 +- `strip-share-sync` — 自动会话共享 +- `strip-models-dev` — 运行时模型列表获取 -了解更多 [Agents](https://opencode.ai/docs/agents) 相关信息。 +小型、孤立的提交在上游移动时可以干净地变基。 -### 文档 +## 测试 -更多配置说明请查看我们的 [**官方文档**](https://opencode.ai/docs)。 - -### 参与贡献 +```bash +# 全套测试(以 root 运行时在 Docker 中运行权限测试) +bash scripts/test.sh -如有兴趣贡献代码,请在提交 PR 前阅读 [贡献指南 (Contributing Docs)](./CONTRIBUTING.md)。 +# 仅主测试套件 +cd packages/opencode && bun test --timeout 30000 -### 基于 OpenCode 进行开发 +# 仅权限测试(必须是非 root,或使用 Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -如果你在项目名中使用了 “opencode”(如 “opencode-dashboard” 或 “opencode-mobile”),请在 README 里注明该项目不是 OpenCode 团队官方开发,且不存在隶属关系。 +### 已知的测试问题 -### 常见问题 (FAQ) +| 测试 | 状态 | 原因 | +|------|--------|-----| +| `session.llm.stream` (2 of 10) | 不稳定 | 模拟 HTTP 服务器状态在并行测试间泄漏。隔离运行时通过率为 10/10 (`bun test test/session/llm.test.ts`)。上游测试隔离 bug——非代码缺陷。 | +| `tool.write > throws error when OS denies write access` | 以 root 身份运行失败 | root 绕过 `chmod 0o444`。在 Docker 中以非 root 身份运行通过。`scripts/test.sh` 会自动处理此问题。 | +| `tui config > continues loading when legacy source cannot be stripped` | 以 root 身份运行失败 | 同样的 root 与 chmod 问题。在 Docker 中以非 root 身份运行通过。 | +| `fsmonitor` (2 个测试) | 跳过 | 仅限 Windows (`process.platform === "win32"`)。 | +| `worktree-remove` (1 个测试) | 跳过 | 仅限 Windows。 | +| `unicode filenames modification and restore` | 跳过 | 上游明确跳过——已知 bug 尚未修复。 | -#### 这和 Claude Code 有什么不同? +## 上游 -功能上很相似,关键差异: +这是 [anomalyco/opencode](https://github.com/anomalyco/opencode) 的一个分支(MIT 许可证)。所有原始代码归他们所有。完整的上游提交历史被保留——您可以确切看到更改了什么以及为什么。 -- 100% 开源。 -- 不绑定特定提供商。推荐使用 [OpenCode Zen](https://opencode.ai/zen) 的模型,但也可搭配 Claude、OpenAI、Google 甚至本地模型。模型迭代会缩小差异、降低成本,因此保持 provider-agnostic 很重要。 -- 内置 LSP 支持。 -- 聚焦终端界面 (TUI)。OpenCode 由 Neovim 爱好者和 [terminal.shop](https://terminal.shop) 的创建者打造,会持续探索终端的极限。 -- 客户端/服务器架构。可在本机运行,同时用移动设备远程驱动。TUI 只是众多潜在客户端之一。 +OpenCode 是一个功能强大的 AI 编程代理,拥有出色的 TUI、LSP 支持和多提供商灵活性。我们使用它因为它是很好的软件。我们剥离遥测是因为隐私声明与行为不符。 ---- +## 许可证 -**加入我们的社区** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — 与上游相同。参见 [LICENSE](LICENSE)。 diff --git a/README.zht.md b/README.zht.md index 573ca85ab4..da8709aa36 100644 --- a/README.zht.md +++ b/README.zht.md @@ -1,18 +1,4 @@ -
-
-
-
開源的 AI Coding Agent。
- +--- 文件:已粘贴 ---English | @@ -39,102 +25,104 @@ Tiếng Việt
-[](https://opencode.ai) +[OpenCode](https://github.com/anomalyco/opencode) 的一个干净分支,移除了所有遥测和回连(phone-home)行为。 ---- +OpenCode 宣传自己是“隐私优先”和“开源”的,但静默地将数据传输到多个第三方服务——分析(PostHog)、遥测(Honeycomb)、会话共享(opncd.ai)、提示词代理(opencode.ai/zen)、搜索查询转发(mcp.exa.ai)以及泄露 IP 的模型列表获取(models.dev)。维护者最初否认存在遥测([#459](https://github.com/sst/opencode/issues/459)),随后又承认了。用户报告称,在配置中禁用遥测并不能完全停止出站连接([#5554](https://github.com/sst/opencode/issues/5554))。 -### 安裝 +Rolandcode 不试图说服 OpenCode 做出改变。它只是剥离他们的遥测并发布干净的构建版本。 -```bash -# 直接安裝 (YOLO) -curl -fsSL https://opencode.ai/install | bash - -# 套件管理員 -npm i -g opencode-ai@latest # 也可使用 bun/pnpm/yarn -scoop install opencode # Windows -choco install opencode # Windows -brew install anomalyco/tap/opencode # macOS 與 Linux(推薦,始終保持最新) -brew install opencode # macOS 與 Linux(官方 brew formula,更新頻率較低) -sudo pacman -S opencode # Arch Linux (Stable) -paru -S opencode-bin # Arch Linux (Latest from AUR) -mise use -g opencode # 任何作業系統 -nix run nixpkgs#opencode # 或使用 github:anomalyco/opencode 以取得最新開發分支 -``` +名字源自布朗宁的《奇尔德·罗兰来到黑塔》(*Childe Roland to the Dark Tower Came*)——罗兰不顾一切阻碍,最终抵达了塔楼。 + +--- + +## 移除的内容 -> [!TIP] -> 安裝前請先移除 0.1.x 以前的舊版本。 +| 端点 | 发送了什么 | +|----------|-------------| +| `us.i.posthog.com` | 使用分析 | +| `api.honeycomb.io` | 遥测、IP 地址、位置 | +| `api.opencode.ai` | 会话内容、提示词 | +| `opncd.ai` | 会话共享数据 | +| `opencode.ai/zen/v1` | 通过 OpenCode 网关代理的提示词 | +| `mcp.exa.ai` | 搜索查询 | +| `models.dev` | 模型列表获取(泄露 IP) | +| `app.opencode.ai` | 通用应用代理 | -### 桌面應用程式 (BETA) +模型目录在构建时从本地快照嵌入——没有运行时回连。 -OpenCode 也提供桌面版應用程式。您可以直接從 [發佈頁面 (releases page)](https://github.com/anomalyco/opencode/releases) 或 [opencode.ai/download](https://opencode.ai/download) 下載。 +## 安装 -| 平台 | 下載連結 | -| --------------------- | ------------------------------------- | -| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` | -| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` | -| Windows | `opencode-desktop-windows-x64.exe` | -| Linux | `.deb`, `.rpm`, 或 AppImage | +从 [发布页面](https://github.com/TODO/rolandcode/releases) 下载二进制文件,或从源码构建: ```bash -# macOS (Homebrew Cask) -brew install --cask opencode-desktop -# Windows (Scoop) -scoop bucket add extras; scoop install extras/opencode-desktop +git clone https://github.com/TODO/rolandcode.git +cd rolandcode/packages/opencode + +# 下载模型目录快照 +curl -fsSL -o models-api.json https://models.dev/api.json + +# 构建 +MODELS_DEV_API_JSON=./models-api.json bun run build --single ``` -#### 安裝目錄 +二进制文件位于 `dist/opencode-linux-x64/bin/rolandcode`(或您平台的等效路径)。 -安裝腳本會依據以下優先順序決定安裝路徑: +## 验证 -1. `$OPENCODE_INSTALL_DIR` - 自定義安裝目錄 -2. `$XDG_BIN_DIR` - 符合 XDG 基礎目錄規範的路徑 -3. `$HOME/bin` - 標準使用者執行檔目錄 (若存在或可建立) -4. `$HOME/.opencode/bin` - 預設備用路徑 +每个构建都可以验证为干净: ```bash -# 範例 -OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash -XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash +bash scripts/verify-clean.sh ``` -### Agents +这会在整个源码树中 grep 所有已知的遥测域名和 SDK 包。如果仍有引用,构建将失败。grep 不会撒谎。 -OpenCode 內建了兩種 Agent,您可以使用 `Tab` 鍵快速切換。 +## 工作原理 -- **build** - 預設模式,具備完整權限的 Agent,適用於開發工作。 -- **plan** - 唯讀模式,適用於程式碼分析與探索。 - - 預設禁止修改檔案。 - - 執行 bash 指令前會詢問權限。 - - 非常適合用來探索陌生的程式碼庫或規劃變更。 +Rolandcode 在上游 OpenCode 之上维护一个小的补丁集。每个剥离提交移除一个遥测关注点: -此外,OpenCode 還包含一個 **general** 子 Agent,用於處理複雜搜尋與多步驟任務。此 Agent 供系統內部使用,亦可透過在訊息中輸入 `@general` 來呼叫。 +- `strip-posthog` — PostHog 分析 +- `strip-honeycomb` — Honeycomb 遥测 +- `strip-exa` — mcp.exa.ai 搜索转发 +- `strip-opencode-api` — api.opencode.ai 和 opncd.ai 端点 +- `strip-zen-gateway` — Zen 代理路由 +- `strip-app-proxy` — app.opencode.ai 通用代理 +- `strip-share-sync` — 自动会话共享 +- `strip-models-dev` — 运行时模型列表获取 -了解更多關於 [Agents](https://opencode.ai/docs/agents) 的資訊。 +小型、孤立的提交在上游移动时可以干净地变基。 -### 線上文件 +## 测试 -關於如何設定 OpenCode 的詳細資訊,請參閱我們的 [**官方文件**](https://opencode.ai/docs)。 - -### 參與貢獻 +```bash +# 全套测试(以 root 运行时在 Docker 中运行权限测试) +bash scripts/test.sh -如果您有興趣參與 OpenCode 的開發,請在提交 Pull Request 前先閱讀我們的 [貢獻指南 (Contributing Docs)](./CONTRIBUTING.md)。 +# 仅主测试套件 +cd packages/opencode && bun test --timeout 30000 -### 基於 OpenCode 進行開發 +# 仅权限测试(必须是非 root,或使用 Docker) +docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \ + bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000 +``` -如果您正在開發與 OpenCode 相關的專案,並在名稱中使用了 "opencode"(例如 "opencode-dashboard" 或 "opencode-mobile"),請在您的 README 中加入聲明,說明該專案並非由 OpenCode 團隊開發,且與我們沒有任何隸屬關係。 +### 已知的测试问题 -### 常見問題 (FAQ) +| 测试 | 状态 | 原因 | +|------|--------|-----| +| `session.llm.stream` (2 of 10) | 不稳定 | 模拟 HTTP 服务器状态在并行测试间泄漏。隔离运行时通过率为 10/10 (`bun test test/session/llm.test.ts`)。上游测试隔离 bug——非代码缺陷。 | +| `tool.write > throws error when OS denies write access` | 以 root 身份运行失败 | root 绕过 `chmod 0o444`。在 Docker 中以非 root 身份运行通过。`scripts/test.sh` 会自动处理此问题。 | +| `tui config > continues loading when legacy source cannot be stripped` | 以 root 身份运行失败 | 同样的 root 与 chmod 问题。在 Docker 中以非 root 身份运行通过。 | +| `fsmonitor` (2 个测试) | 跳过 | 仅限 Windows (`process.platform === "win32"`)。 | +| `worktree-remove` (1 个测试) | 跳过 | 仅限 Windows。 | +| `unicode filenames modification and restore` | 跳过 | 上游明确跳过——已知 bug 尚未修复。 | -#### 這跟 Claude Code 有什麼不同? +## 上游 -在功能面上與 Claude Code 非常相似。以下是關鍵差異: +这是 [anomalyco/opencode](https://github.com/anomalyco/opencode) 的一个分支(MIT 许可证)。所有原始代码归他们所有。完整的上游提交历史被保留——您可以确切看到更改了什么以及为什么。 -- 100% 開源。 -- 不綁定特定的服務提供商。雖然我們推薦使用透過 [OpenCode Zen](https://opencode.ai/zen) 提供的模型,但 OpenCode 也可搭配 Claude, OpenAI, Google 甚至本地模型使用。隨著模型不斷演進,彼此間的差距會縮小且價格會下降,因此具備「不限廠商 (provider-agnostic)」的特性至關重要。 -- 內建 LSP (語言伺服器協定) 支援。 -- 專注於終端機介面 (TUI)。OpenCode 由 Neovim 愛好者與 [terminal.shop](https://terminal.shop) 的創作者打造。我們將不斷挑戰終端機介面的極限。 -- 客戶端/伺服器架構 (Client/Server Architecture)。這讓 OpenCode 能夠在您的電腦上運行的同時,由行動裝置進行遠端操控。這意味著 TUI 前端只是眾多可能的客戶端之一。 +OpenCode 是一个功能强大的 AI 编程代理,拥有出色的 TUI、LSP 支持和多提供商灵活性。我们使用它因为它是很好的软件。我们剥离遥测是因为隐私声明与行为不符。 ---- +## 许可证 -**加入我們的社群** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode) +MIT — 与上游相同。参见 [LICENSE](LICENSE)。