chore: generate

This commit is contained in:
opencode-agent[bot]
2026-02-09 17:35:30 +00:00
parent dc53086c1e
commit d578f80f00
222 changed files with 6797 additions and 6590 deletions

View File

@@ -14,6 +14,7 @@ ACP بروتوكول مفتوح يوحّد آلية التواصل بين محر
---
## الإعداد
لاستخدام OpenCode عبر ACP، اضبط محررك ليشغّل الأمر `opencode acp`.
يشغّل هذا الأمر OpenCode كعملية فرعية متوافقة مع ACP تتواصل مع محررك عبر JSON-RPC باستخدام stdio.
@@ -140,6 +141,7 @@ require("codecompanion").setup({
إذا احتجت إلى تمرير متغيرات البيئة (مثل `OPENCODE_API_KEY`)، فارجع إلى [Configuring Adapters: Environment Variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) ضمن توثيق CodeCompanion.nvim للاطلاع على التفاصيل كاملة.
## الدعم
يعمل OpenCode عبر ACP بالطريقة نفسها التي يعمل بها في الطرفية. جميع الميزات مدعومة:
:::note

View File

@@ -8,11 +8,13 @@ description: أنشئ أدوات يمكن لـ LLM استدعاؤها في openc
---
## إنشاء أداة
تُعرّف الأدوات كملفات **TypeScript** أو **JavaScript**. لكن تعريف الأداة يمكنه استدعاء سكربتات مكتوبة **بأي لغة** — إذ تُستخدم TypeScript أو JavaScript فقط لتعريف الأداة نفسه.
---
### الموقع
يمكن تعريفها:
- محليا بوضعها في مجلد `.opencode/tools/` داخل مشروعك.
@@ -21,6 +23,7 @@ description: أنشئ أدوات يمكن لـ LLM استدعاؤها في openc
---
### البنية
أسهل طريقة لإنشاء أدوات هي استخدام المساعد `tool()` الذي يوفر أمان الأنواع والتحقق.
```ts title=".opencode/tools/database.ts" {1}
@@ -43,6 +46,7 @@ export default tool({
---
#### عدة أدوات في ملف واحد
يمكنك أيضا تصدير عدة أدوات من ملف واحد. يصبح كل تصدير **أداة مستقلة** باسم **`<filename>_<exportname>`**:
```ts title=".opencode/tools/math.ts"
@@ -76,6 +80,7 @@ export const multiply = tool({
---
### الوسائط
يمكنك استخدام `tool.schema`، وهو في الأساس [Zod](https://zod.dev)، لتعريف أنواع الوسائط.
```ts "tool.schema"
@@ -104,6 +109,7 @@ export default {
---
### السياق
تستقبل الأدوات سياقا حول الجلسة الحالية:
```ts title=".opencode/tools/project.ts" {8}
@@ -126,7 +132,9 @@ export default tool({
---
## أمثلة
### كتابة أداة بلغة Python
يمكنك كتابة أدواتك بأي لغة تريدها. إليك مثالا يجمع رقمين باستخدام Python.
أولا، أنشئ الأداة كسكربت Python:

View File

@@ -14,6 +14,7 @@ description: مشاريع وتكاملات مبنية باستخدام OpenCode.
---
## الإضافات
| الاسم | الوصف |
| --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | تشغيل جلسات OpenCode تلقائيا داخل بيئات Daytona معزولة مع مزامنة git ومعاينات حية |
@@ -50,6 +51,7 @@ description: مشاريع وتكاملات مبنية باستخدام OpenCode.
---
## المشاريع
| الاسم | الوصف |
| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| [kimaki](https://github.com/remorses/kimaki) | بوت Discord للتحكم بجلسات OpenCode، مبني على SDK |
@@ -67,6 +69,7 @@ description: مشاريع وتكاملات مبنية باستخدام OpenCode.
---
## الوكلاء
| الاسم | الوصف |
| ----------------------------------------------------------------- | --------------------------------------------- |
| [Agentic](https://github.com/Cluster444/agentic) | وكلاء وأوامر ذكاء اصطناعي معيارية لتطوير منظم |

View File

@@ -11,32 +11,32 @@ description: يستخدم OpenCode مُنسِّقات خاصة بكل لغة.
يأتي OpenCode مع عدة مُنسِّقات مُضمَّنة للغات وأطر العمل الشائعة. فيما يلي قائمة بالمُنسِّقات وامتدادات الملفات المدعومة والأوامر أو خيارات الإعداد التي تحتاجها.
| المُنسِّق | الامتدادات | المتطلبات |
| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| gofmt | .go | يتوفر أمر `gofmt` |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | يتوفر أمر `mix` |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml، و[غير ذلك](https://prettier.io/docs/en/index.html) | وجود اعتماد `prettier` في `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml، و[غير ذلك](https://biomejs.dev/) | ملف إعداد `biome.json(c)` |
| zig | .zig, .zon | يتوفر أمر `zig` |
| clang-format | .c, .cpp, .h, .hpp, .ino، و[غير ذلك](https://clang.llvm.org/docs/ClangFormat.html) | ملف إعداد `.clang-format` |
| ktlint | .kt, .kts | يتوفر أمر `ktlint` |
| ruff | .py, .pyi | يتوفر أمر `ruff` مع إعداد |
| rustfmt | .rs | يتوفر أمر `rustfmt` |
| cargofmt | .rs | يتوفر أمر `cargo fmt` |
| uv | .py, .pyi | يتوفر أمر `uv` |
| rubocop | .rb, .rake, .gemspec, .ru | يتوفر أمر `rubocop` |
| standardrb | .rb, .rake, .gemspec, .ru | يتوفر أمر `standardrb` |
| htmlbeautifier | .erb, .html.erb | يتوفر أمر `htmlbeautifier` |
| air | .R | يتوفر أمر `air` |
| dart | .dart | يتوفر أمر `dart` |
| ocamlformat | .ml, .mli | يتوفر أمر `ocamlformat` وملف إعداد `.ocamlformat` |
| terraform | .tf, .tfvars | يتوفر أمر `terraform` |
| gleam | .gleam | يتوفر أمر `gleam` |
| nixfmt | .nix | يتوفر أمر `nixfmt` |
| shfmt | .sh, .bash | يتوفر أمر `shfmt` |
| pint | .php | وجود اعتماد `laravel/pint` في `composer.json` |
| المُنسِّق | الامتدادات | المتطلبات |
| -------------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| gofmt | .go | يتوفر أمر `gofmt` |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | يتوفر أمر `mix` |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml، و[غير ذلك](https://prettier.io/docs/en/index.html) | وجود اعتماد `prettier` في `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml، و[غير ذلك](https://biomejs.dev/) | ملف إعداد `biome.json(c)` |
| zig | .zig, .zon | يتوفر أمر `zig` |
| clang-format | .c, .cpp, .h, .hpp, .ino، و[غير ذلك](https://clang.llvm.org/docs/ClangFormat.html) | ملف إعداد `.clang-format` |
| ktlint | .kt, .kts | يتوفر أمر `ktlint` |
| ruff | .py, .pyi | يتوفر أمر `ruff` مع إعداد |
| rustfmt | .rs | يتوفر أمر `rustfmt` |
| cargofmt | .rs | يتوفر أمر `cargo fmt` |
| uv | .py, .pyi | يتوفر أمر `uv` |
| rubocop | .rb, .rake, .gemspec, .ru | يتوفر أمر `rubocop` |
| standardrb | .rb, .rake, .gemspec, .ru | يتوفر أمر `standardrb` |
| htmlbeautifier | .erb, .html.erb | يتوفر أمر `htmlbeautifier` |
| air | .R | يتوفر أمر `air` |
| dart | .dart | يتوفر أمر `dart` |
| ocamlformat | .ml, .mli | يتوفر أمر `ocamlformat` وملف إعداد `.ocamlformat` |
| terraform | .tf, .tfvars | يتوفر أمر `terraform` |
| gleam | .gleam | يتوفر أمر `gleam` |
| nixfmt | .nix | يتوفر أمر `nixfmt` |
| shfmt | .sh, .bash | يتوفر أمر `shfmt` |
| pint | .php | وجود اعتماد `laravel/pint` في `composer.json` |
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | وجود اعتماد `oxfmt` في `package.json` و[علم متغير بيئة تجريبي](/docs/cli/#experimental) |
| ormolu | .hs | يتوفر أمر `ormolu` |
| ormolu | .hs | يتوفر أمر `ormolu` |
لذا إذا كان مشروعك يتضمن `prettier` ضمن `package.json`، فسيستخدمه OpenCode تلقائيا.

View File

@@ -10,6 +10,7 @@ description: أضف أدوات MCP محلية وبعيدة.
---
#### تنبيهات
عند استخدام خادم MCP فإنه يضيف إلى السياق. وقد يتراكم ذلك بسرعة إذا كان لديك الكثير من الأدوات. لذلك نوصي بالتحلّي بالحذر عند اختيار خوادم MCP التي تستخدمها.
:::tip
@@ -21,6 +22,7 @@ description: أضف أدوات MCP محلية وبعيدة.
---
## التمكين
يمكنك تعريف خوادم MCP في [إعدادات OpenCode](https://opencode.ai/docs/config/) ضمن `mcp`. أضف كل خادم MCP باسم فريد. ويمكنك الإشارة إلى ذلك الخادم بالاسم عند توجيه الطلب إلى الـ LLM.
```jsonc title="opencode.jsonc" {6}
@@ -43,6 +45,7 @@ description: أضف أدوات MCP محلية وبعيدة.
---
### تجاوز القيم الافتراضية البعيدة
يمكن للمنظمات توفير خوادم MCP الافتراضية عبر نقطة النهاية `.well-known/opencode` الخاصة بها. قد تكون هذه الخوادم معطّلة افتراضيا، مما يتيح للمستخدمين تفعيل ما يحتاجونه فقط.
لتفعيل خادم معيّن من الإعدادات البعيدة الخاصة بمؤسستك، أضفه إلى إعداداتك المحلية مع `enabled: true`:
@@ -65,6 +68,7 @@ description: أضف أدوات MCP محلية وبعيدة.
---
## محلي
أضف خوادم MCP المحلية عبر ضبط `type` على `"local"` ضمن كائن `mcp`.
```jsonc title="opencode.jsonc" {15}
@@ -109,6 +113,7 @@ use the mcp_everything tool to add the number 3 and 4
---
#### الخيارات
فيما يلي جميع الخيارات المتاحة لتهيئة خادم MCP محلي.
| الخيار | النوع | مطلوب | الوصف |
@@ -122,6 +127,7 @@ use the mcp_everything tool to add the number 3 and 4
---
## بعيد
أضف خوادم MCP البعيدة عبر ضبط `type` على `"remote"`.
```json title="opencode.json"
@@ -145,6 +151,7 @@ use the mcp_everything tool to add the number 3 and 4
---
#### الخيارات
| الخيار | النوع | مطلوب | الوصف |
| --------- | ------- | ----- | -------------------------------------------------------------------------------- |
| `type` | String | Y | نوع اتصال خادم MCP، ويجب أن يكون `"remote"`. |
@@ -157,6 +164,7 @@ use the mcp_everything tool to add the number 3 and 4
---
## OAuth
يتولى OpenCode تلقائيا معالجة مصادقة OAuth لخوادم MCP البعيدة. عندما يتطلب خادم ما المصادقة، سيقوم OpenCode بما يلي:
1. اكتشاف استجابة 401 وبدء تدفق OAuth
@@ -166,6 +174,7 @@ use the mcp_everything tool to add the number 3 and 4
---
### تلقائي
بالنسبة لمعظم خوادم MCP التي تدعم OAuth، لا تحتاج إلى إعدادات خاصة. ما عليك سوى تهيئة الخادم البعيد:
```json title="opencode.json"
@@ -185,6 +194,7 @@ use the mcp_everything tool to add the number 3 and 4
---
### مُسجَّل مسبقا
إذا كانت لديك بيانات اعتماد العميل من موفّر خادم MCP، يمكنك تهيئتها:
```json title="opencode.json" {7-11}
@@ -207,6 +217,7 @@ use the mcp_everything tool to add the number 3 and 4
---
### المصادقة
يمكنك تشغيل المصادقة يدويا أو إدارة بيانات الاعتماد.
صادِق مع خادم MCP معيّن:
@@ -232,6 +243,7 @@ opencode mcp logout my-oauth-server
---
#### تعطيل OAuth
إذا أردت تعطيل OAuth التلقائي لخادم ما (على سبيل المثال، للخوادم التي تستخدم مفاتيح API بدلا من ذلك)، فاضبط `oauth` على `false`:
```json title="opencode.json" {7}
@@ -253,6 +265,7 @@ opencode mcp logout my-oauth-server
---
#### خيارات OAuth
| الخيار | النوع | الوصف |
| -------------- | --------------- | ------------------------------------------------------------------------ |
| `oauth` | Object \| false | كائن إعدادات OAuth، أو `false` لتعطيل الاكتشاف التلقائي لـ OAuth. |
@@ -261,6 +274,7 @@ opencode mcp logout my-oauth-server
| `scope` | String | نطاقات OAuth المطلوبة أثناء التفويض. |
#### تصحيح الأخطاء
إذا فشل خادم MCP بعيد في المصادقة، يمكنك تشخيص المشكلة باستخدام:
```bash
@@ -276,11 +290,13 @@ opencode mcp debug my-oauth-server
---
## الإدارة
تتوفر خوادم MCP لديك كأدوات داخل OpenCode إلى جانب الأدوات المضمنة. لذا يمكنك إدارتها عبر إعدادات OpenCode مثل أي أداة أخرى.
---
### عام
هذا يعني أنه يمكنك تفعيلها أو تعطيلها على مستوى عام.
```json title="opencode.json" {14}
@@ -328,6 +344,7 @@ opencode mcp debug my-oauth-server
---
### لكل وكيل
إذا كان لديك عدد كبير من خوادم MCP فقد ترغب في تفعيلها لكل وكيل على حدة وتعطيلها على المستوى العام. للقيام بذلك:
1. عطّلها كأداة على المستوى العام.
@@ -359,6 +376,7 @@ opencode mcp debug my-oauth-server
---
#### أنماط Glob
يستخدم نمط glob أنماطا بسيطة من مطابقة glob:
- `*` يطابق صفرا أو أكثر من أي محرف (على سبيل المثال، `"my-mcp*"` يطابق `my-mcp_search` و`my-mcp_list` وغيرها.)
@@ -377,6 +395,7 @@ opencode mcp debug my-oauth-server
---
## أمثلة
فيما يلي أمثلة لبعض خوادم MCP الشائعة. يمكنك إرسال PR إذا أردت توثيق خوادم أخرى.
---

View File

@@ -10,6 +10,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## الإجراءات
يؤول كل حكم أذونات إلى إحدى القيم التالية:
- `"allow"` — تشغيل دون موافقة
@@ -19,6 +20,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## الإعداد
يمكنك تعيين الأذونات بشكل عام (باستخدام `*`) ثم تجاوزها لأدوات محددة.
```json title="opencode.json"
@@ -44,6 +46,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## قواعد دقيقة (صيغة الكائن)
في معظم الأذونات، يمكنك استخدام كائن لتطبيق إجراءات مختلفة بناءً على مُدخلات الأداة.
```json title="opencode.json"
@@ -68,6 +71,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
تُقيَّم القواعد عبر مطابقة الأنماط، مع كون **آخر قاعدة مطابقة هي التي تُطبَّق**. من الشائع وضع قاعدة الشمول `"*"` أولًا ثم القواعد الأكثر تحديدًا بعدها.
### أحرف البدل
تستخدم أنماط الأذونات مطابقة بسيطة لأحرف البدل:
- `*` يطابق صفرًا أو أكثر من أي حرف
@@ -75,6 +79,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
- جميع الأحرف الأخرى تُطابق حرفيًا
### توسيع مجلد المنزل
يمكنك استخدام `~` أو `$HOME` في بداية النمط للإشارة إلى مجلد المنزل. هذا مفيد خصوصًا لقواعد [`external_directory`](#external-directories).
- `~/projects/*` -> `/Users/username/projects/*`
@@ -82,6 +87,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
- `~` -> `/Users/username`
### الأدلة الخارجية
استخدم `external_directory` للسماح باستدعاءات الأدوات التي تلمس مسارات خارج دليل العمل الذي بدأ منه OpenCode. ينطبق ذلك على أي أداة تأخذ مسارًا كمدخل (مثل `read` و`edit` و`list` و`glob` و`grep` والعديد من أوامر `bash`).
توسيع المنزل (مثل `~/...`) يؤثر فقط على طريقة كتابة النمط. لا يجعل ذلك المسار الخارجي جزءًا من مساحة العمل الحالية، لذا يجب السماح بالمسارات خارج دليل العمل عبر `external_directory` أيضًا.
@@ -120,6 +126,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## الأذونات المتاحة
تُعرَّف أذونات OpenCode بأسماء الأدوات، بالإضافة إلى بعض حواجز الأمان:
- `read` — قراءة ملف (يطابق مسار الملف)
@@ -140,6 +147,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## القيم الافتراضية
إذا لم تحدد شيئًا، يبدأ OpenCode بقيم افتراضية متساهلة:
- معظم الأذونات افتراضيًا تكون `"allow"`.
@@ -162,6 +170,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## ماذا تفعل `"ask"`
عندما يطلب OpenCode الموافقة، تعرض الواجهة ثلاث نتائج ممكنة:
- `once` — الموافقة على هذا الطلب فقط
@@ -173,6 +182,7 @@ description: تحكّم في الإجراءات التي تتطلب موافقة
---
## الوكلاء
يمكنك تجاوز الأذونات لكل وكيل. تُدمَج أذونات الوكلاء مع الإعداد العام، وتكون قواعد الوكيل هي ذات الأولوية. [تعرّف أكثر](/docs/agents#permissions) على أذونات الوكلاء.
:::note

View File

@@ -16,17 +16,20 @@ export const console = config.console
---
### بيانات الاعتماد
عند إضافة مفاتيح API الخاصة بمزوّد عبر الأمر `/connect`، يتم تخزينها
في `~/.local/share/opencode/auth.json`.
---
### الإعدادات
يمكنك تخصيص المزوّدات عبر قسم `provider` في ملف إعدادات OpenCode.
---
#### عنوان URL الأساسي
يمكنك تخصيص عنوان URL الأساسي لأي مزوّد عبر خيار `baseURL`. يفيد ذلك عند استخدام خدمات وسيطة (proxy) أو نقاط نهاية مخصّصة.
```json title="opencode.json" {6}
@@ -81,6 +84,7 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
---
## الدليل
لنلقِ نظرة على بعض المزوّدات بالتفصيل. إذا رغبت في إضافة مزوّد إلى القائمة،
فلا تتردد في فتح PR.
@@ -131,6 +135,7 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
2. **اضبط المصادقة** باستخدام إحدى الطرق التالية:
#### متغيرات البيئة (بدء سريع)
عيّن أحد متغيرات البيئة التالية أثناء تشغيل opencode:
```bash
@@ -152,6 +157,7 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
```
#### ملف الإعدادات (موصى به)
للإعداد الخاص بالمشروع أو الإعداد الدائم، استخدم `opencode.json`:
```json title="opencode.json"
@@ -178,6 +184,7 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
:::
#### متقدم: نقاط نهاية VPC
إذا كنت تستخدم نقاط نهاية VPC لـ Bedrock:
```json title="opencode.json"
@@ -199,12 +206,13 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
خيار `endpoint` هو اسم بديل لخيار `baseURL` العام باستخدام مصطلحات AWS. إذا تم تحديد كل من `endpoint` و`baseURL`، فستكون الأولوية لـ `endpoint`.
:::
#### طرق المصادقة - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: أنشئ مستخدم IAM وأنشئ مفاتيح وصول من AWS Console
#### طرق المصادقة - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: أنشئ مستخدم IAM وأنشئ مفاتيح وصول من AWS Console
- **`AWS_PROFILE`**: استخدم ملفات تعريف مسمّاة من `~/.aws/credentials`. اضبط أولا عبر `aws configure --profile my-profile` أو `aws sso login`
- **`AWS_BEARER_TOKEN_BEDROCK`**: أنشئ مفاتيح API طويلة الأجل من Amazon Bedrock console
- **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: لـ EKS IRSA (IAM Roles for Service Accounts) أو بيئات Kubernetes أخرى مع اتحاد OIDC. يتم حقن متغيرات البيئة هذه تلقائيا بواسطة Kubernetes عند استخدام تعليقات حساب الخدمة.
#### أولوية المصادقة
يستخدم Amazon Bedrock أولوية المصادقة التالية:
1. **Bearer Token** - متغير البيئة `AWS_BEARER_TOKEN_BEDROCK` أو الرمز من الأمر `/connect`
2. **AWS Credential Chain** - الملف الشخصي، مفاتيح الوصول، بيانات الاعتماد المشتركة، أدوار IAM، رموز Web Identity (EKS IRSA)، بيانات تعريف المثيل
@@ -273,6 +281,7 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
:::
##### استخدام مفاتيح API
يمكنك أيضا اختيار **Create an API Key** إذا لم يكن لديك اشتراك Pro/Max. سيفتح ذلك المتصفح أيضا ويطلب منك تسجيل الدخول إلى Anthropic ويعطيك رمزا يمكنك لصقه في الطرفية.
أو إذا كان لديك مفتاح API بالفعل، يمكنك اختيار **Manually enter API Key** ولصقه في الطرفية.
@@ -645,9 +654,10 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
```
#### استخدام OAuth (موصى به)
اختر **OAuth** وسيفتح المتصفح لإتمام التفويض.
#### استخدام Personal Access Token 1. اذهب إلى [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens)
#### استخدام Personal Access Token 1. اذهب إلى [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens)
2. انقر **Add new token**
3. Name: `OpenCode`، Scopes: `api`
4. انسخ الرمز (يبدأ بـ `glpat-`)
@@ -670,6 +680,7 @@ OpenCode Zen هي قائمة نماذج يوفّرها فريق OpenCode وقد
:::
##### GitLab مستضاف ذاتيا
:::note[ملاحظة امتثال]
يستخدم OpenCode نموذجا صغيرا لبعض مهام الذكاء الاصطناعي مثل إنشاء عنوان الجلسة.
تم ضبطه لاستخدام gpt-5-nano افتراضيا، مستضافا عبر Zen. لحصر OpenCode
@@ -717,6 +728,7 @@ export GITLAB_TOKEN=glpat-...
:::
##### OAuth للمثيلات المستضافة ذاتيا
لكي يعمل Oauth مع مثيلك المستضاف ذاتيا، تحتاج إلى إنشاء
تطبيق جديد (Settings → Applications) مع
callback URL `http://127.0.0.1:8080/callback` ونطاقات الصلاحيات التالية:
@@ -734,6 +746,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
مزيد من التوثيق على صفحة [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth).
##### التهيئة
خصّص عبر `opencode.json`:
```json title="opencode.json"
@@ -754,6 +767,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
```
##### أدوات GitLab API (اختياري، لكن موصى به بشدة)
للوصول إلى أدوات GitLab (merge requests وissues وpipelines وCI/CD وغيرها):
```json title="opencode.json"
@@ -933,6 +947,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
لمزيد من المزوّدات والميزات المتقدمة مثل التخزين المؤقت (caching) وتحديد المعدّل (rate limiting)، راجع [توثيق Helicone](https://docs.helicone.ai).
#### إعدادات اختيارية
إذا رأيت ميزة أو نموذجا في Helicone لم يتم ضبطه تلقائيا عبر opencode، فيمكنك دائما ضبطه بنفسك.
هذه هي [Helicone's Model Directory](https://helicone.ai/models)، وستحتاجها للحصول على IDs الخاصة بالنماذج التي تريد إضافتها.
@@ -962,6 +977,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
```
#### ترويسات مخصّصة
تدعم Helicone ترويسات مخصّصة لميزات مثل التخزين المؤقت وتتبع المستخدم وإدارة الجلسات. أضفها إلى إعداد المزوّد عبر `options.headers`:
```jsonc title="~/.config/opencode/opencode.jsonc"
@@ -984,6 +1000,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
```
##### تتبع الجلسات
تتيح ميزة [Sessions](https://docs.helicone.ai/features/sessions) في Helicone تجميع طلبات LLM المرتبطة معا. استخدم ملحق [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) لتسجيل كل محادثة OpenCode تلقائيا كجلسة في Helicone.
```bash
@@ -1001,6 +1018,7 @@ npm install -g opencode-helicone-session
يقوم الملحق بحقن ترويسات `Helicone-Session-Id` و`Helicone-Session-Name` ضمن طلباتك. في صفحة Sessions داخل Helicone، سترى كل محادثة OpenCode مدرجة كجلسة مستقلة.
##### ترويسات Helicone الشائعة
| Header | الوصف |
| -------------------------- | -------------------------------------------------------- |
| `Helicone-Cache-Enabled` | تفعيل التخزين المؤقت للاستجابات (`true`/`false`) |
@@ -1305,6 +1323,7 @@ npm install -g opencode-helicone-session
```
##### استخدام مفاتيح API
إذا كان لديك مفتاح API بالفعل، يمكنك اختيار **Manually enter API Key** ولصقه في الطرفية.
---
@@ -1722,6 +1741,7 @@ OpenCode Zen هي قائمة من النماذج التي تم اختبارها
---
## موفّر مخصّص
لإضافة أي مزوّد **OpenAI-compatible** غير موجود ضمن الأمر `/connect`:
:::tip
@@ -1808,6 +1828,7 @@ OpenCode Zen هي قائمة من النماذج التي تم اختبارها
---
##### مثال
إليك مثالا يضبط خيارات `apiKey` و`headers` وخيارات `limit` الخاصة بالنموذج.
```json title="opencode.json" {9,11,17-20}
@@ -1850,6 +1871,7 @@ OpenCode Zen هي قائمة من النماذج التي تم اختبارها
---
## استكشاف الأخطاء وإصلاحها
إذا كنت تواجه مشكلة في تهيئة مزوّد، فتحقق مما يلي:
1. **تحقق من إعداد auth**: شغّل `opencode auth list` لمعرفة ما إذا كانت بيانات الاعتماد

View File

@@ -284,6 +284,7 @@ How is auth handled in @packages/functions/src/api/index.ts?
---
## إعداد المحرر
يستخدم الأمران `/editor` و`/export` المحرر المحدد في متغير البيئة `EDITOR`.
<Tabs>