الإجابات

الأسئلة
المتكررة.

إجابات واضحة حول التثبيت والموفرين وخوادم MCP وحدود الأمان والأدوات والملفات التي يديرها ash على جهازك.

ابدء

ماذا أحتاج قبل أن أتمكن من استخدامهash؟

أنت بحاجة إلىashقابل للتنفيذ، ونقطة نهاية الذكاء الاصطناعي، واسم النموذج. جريash installيقوم بتكوين ما يلي تلقائيًا: فهو يستخدم مفتاح API لموفر السحابة الذي تم تعيينه بالفعل أو خادم استدلال محلي قيد التشغيل عند العثور عليه، وإلا فإنه يعرض قائمة موفر مرقمة ويطالب بمفتاح API، ثم يتيح لك اختيار نموذج من قائمة نماذج نقطة النهاية. يمكنك أيضًا ضبطASH_AI_ENDPOINTوASH_AI_MODELيدويا. يمكن استخدام نقطة نهاية محلية مثل Ollamahttp://localhost:11434، ومضيف LAN مثلhttp://brain.local:11434أو يتم أيضًا التعامل مع عنوان IP الخاص على أنه محلي (ما لمASH_STRICT=1); يجب أن تستخدم نقاط النهاية السحابية HTTPS وتتطلب عادةًASH_AI_AUTH_TOKEN. تكامل Shell هو اختياري: يمكنك دائمًا التشغيلash "your question"مباشرة.

أينashالتثبيت، وكيف أتأكد من أن الصدفة الخاصة بي يمكنها العثور عليه؟

أماكن المثبت التي تم التحقق منهاashفي~/.local/bin/ash. أضف هذا الدليل إلى ملفكPATHباستخدام التكوين العادي للقذيفة الخاصة بك؛ash installلا يقوم بتحرير ملفات بدء تشغيل Shell إلا إذا نجحت--shell-integration. افتح محطة جديدة، ثم قم بتشغيلهاcommand -v ashللتأكيد. يقوم المُحدِّث الذاتي بتثبيت الملف الثنائي البديل في نفس الموقع المحلي للمستخدم. يتطلب المثبت Sigstorecosignللتحقق من بيان المجموع الاختباري الموقع.

كيف أستخدمashدون تغيير قوقعتي؟

تمرير موجه مقتبس مباشرة:ash "how do I find large files?". وبدون أي حجج،ashيقبل أيضًا مطالبة الإدخال القياسية غير التفاعلية، مثلgit diff | ash. الاستخدام المباشر هو الخيار الأقل إثارة للدهشة عندما تتعلمashأو كتابة السيناريو.

لماذاashأقول أن تكوين الذكاء الاصطناعي الخاص بي غير مكتمل؟

تحقق من ذلكASH_AI_ENDPOINTوASH_AI_MODELليست فارغة في البيئة حيثashيدير. بالنسبة لاسم المضيف السحابي، قم بتعيينه أيضًاASH_AI_AUTH_TOKENعندما يطلبها المزود. يجريprintf '%s\n' "$ASH_AI_ENDPOINT" "$ASH_AI_MODEL"للتأكد من وجود القيمتين الأوليين، ولكن لا تقم بطباعة رمز المصادقة في تسجيل طرفي أو سجل مشترك.

التثبيت والتحديث

يفعلashالعمل على ويندوز 11؟

ليس أصليا.ashيدعم bash وzsh وFish على أنظمة التشغيل macOS وLinux وFreeBSD؛ لا يوجد هدف تثبيت PowerShell. استخدم WSL لتجربة Linux المدعومة.

كيف أقوم بالتثبيتashفي نظام Windows الفرعي لنظام Linux (WSL)؟

اتبعتعليمات تثبيت لينكسداخل توزيع WSL الخاص بك، مفضلاً مدير الحزم الخاص به. ثمقم بتكوين موفر وتمكين تكامل Bash اختياريًا. لا يوجد مثبت Windows أصلي.

كيف أقوم بالتحديثashإلى أحدث نسخة الإصدار؟

استخدم مدير الحزم الخاص بتثبيتات Homebrew/APT/DNF/Pacman.ash updateمخصص فقط لعمليات تثبيت الإصدار المستقر ضمن~/.local/bin; فهو يتحقق من ملخص البيان والأرشيف الموقّع من Sigstore، ويرفض التوقيع الفاشل. تحتاج عمليات تثبيت .pkg الأصلية والدليل المخصص إلى المثبت الأصلي/الاستبدال اليدوي. يرىالتحديثات واشتراكات القناةللإصدار والبيتا والليلة.

ركضتash install. لماذا لا يتغير شيء في هذه المحطة؟

يتم تعطيل تكامل Shell بشكل افتراضي. لتمكينه، قم بتشغيلash install --shell bash --shell-integration(أو حددzshأوfish); ولا يعيد كتابة عملية الصدفة الجارية بالفعل. افتح محطة جديدة أو أعد تحميل ملف بدء التشغيل المحدد. يجريash install --shell bash --disable-shell-integrationلإزالةAshالكتلة المُدارة مع الحفاظ على المحتوى المحيط.

الأوامر غير المعروفة لا تزال تقول "لم يتم العثور عليه". كيف يمكنني استكشاف أخطاء تكامل Shell وإصلاحها؟

تأكد أولاً من تمكين تكامل Shell معash install --shell bash --shell-integration(استبدل قوقعتك)، ثم قم بتشغيلcommand -v ash; لا يمكن للخطاف استدعاء ملف ثنائي لا تستطيع الصدفة العثور عليه. أعد تحميل الصدفة أو أعد تشغيلها وتأكد من أن ملف بدء التشغيل الخاص بها يحتوي على الملف>>> ash install >>>كتلة مدارة. تشغيل أخيراash snooze off، لأن الغفوة تترك الأوامر غير المعروفة عمدًا على أنها حالات فشل عادية "لم يتم العثور عليها".

ما هي الملفات التي يفعلهاash installالتغيير، وهل يمكنني معاينته؟

يدير التكوين تحت$XDG_CONFIG_HOME/ash(تقصير~/.config/ash)، البيانات تحت$XDG_DATA_HOME/ash(تقصير~/.local/share/ash)، الدولة تحت$XDG_STATE_HOME/ash(تقصير~/.local/state/ash)، وذاكرة التخزين المؤقت تحت$XDG_CACHE_HOME/ash(تقصير~/.cache/ash). يتم تغيير ملفات بدء التشغيل فقط مع--shell-integration. يستخدمash install --shell bash --shell-integration --dry-runللمعاينة؛ التشغيل الجاف لا يكتب الملفات. إعادة تشغيل التثبيت غير فعالة؛ يستخدم--overwriteفقط عندما تريد تحديث ملفات التمهيد المُدارة.

يفعلashدعم السمك؟

نعم. يجريash install --shell fish --shell-integrationللاشتراك.ashيضيف كتلة مُدارة إلى$XDG_CONFIG_HOME/fish/config.fish، أو~/.config/fish/config.fishعند عدم ضبط XDG_CONFIG_HOME. استخدامات الأسماكfish_command_not_found، لذلك يصل أمر لم يتم حلهashمع حججه الأصلية.

لماذا لا تكون صغيرةtestوtypeفي السمك؟

يحتفظ Fish بتلك الأسماء الصغيرة باعتبارها عناصر أساسية ولا يسمح لوظيفة باستبدالها. يستخدمTest ...أوType ...للتعبيرashنية أو استدعاءash "..."مباشرة. تظل أغلفة التصادم المتوافقة الأخرى متاحة.

ماذا عن ksh93؟

ksh93 غير مدعوم لتكامل Shell. إنهFPATHيمكن للسلوك فقط تحميل ملف يحمل اسم أمر غير معروف؛ لا يحتوي على رد اتصال عام لم يتم العثور على أمر يمكن تنفيذه بأمانashالتوجيه الفوري أو دورة حياة الوسيط.

الذكاء الاصطناعي والاتصالات

يفعلashتشمل منظمة العفو الدولية؟

لا.ashهو عميل لنقطة نهاية الذكاء الاصطناعي التي تقوم بتكوينها. تعيينASH_AI_ENDPOINTوASH_AI_MODEL;ashيدعم Ollama المحلي والخوادم المحلية الأخرى المتوافقة مع OpenAI (LM Studio، llama.cpp، MLX، LocalAI، vLLM، text-gene-webui، Jan، GPT4All)، ويكتشف محولات موفر السحابة المدعومة من نقطة النهاية، مع خيار اختياريASH_AI_PROVIDERتجاوز.

ما هي خوادم MCP، وكيف يمكنني إضافتها؟

تعرض خوادم MCP (بروتوكول سياق النموذج) الأدوات التي يمكن أن يستدعيها نموذج الذكاء الاصطناعي، مثل البحث أو التحليل أو الإجراءات الخاصة بالخدمة. لا يتم تمكين الخوادم البعيدة بشكل افتراضي. لإضافة خادم HTTP MCP موثوق به وقابل للتدفق، استخدمash mcp add <url>أو أضف عنوان URL الخاص به على السطر الخاص به$XDG_CONFIG_HOME/ash/.ash_allow(تقصير~/.config/ash/.ash_allow).Ashيتصل من خلال وسيطه ويقدم أدوات الخادم للنموذج. استخدم فقط الخوادم التي تثق بها: قد تؤدي أدواتها إجراءات نيابة عنك. HTTPS مطلوب باستثناء خوادم تطوير المضيف المحلي. إذا فشلت تهيئة MCP،ashيستمر بدون أدوات MCP عن بعد: فهو يحذر في الجلسات التفاعلية ويبقى صامتًا في الجلسات غير التفاعلية.

هل يمكن للوظائف المجدولة استخدام خوادم MCP؟

لا. لا ترث المهام المجدولة وغيرها من المهام غير التفاعلية وسيط Shell التفاعلي، لذا لا تتوفر أدوات MCP عن بعد.Ashلا يزال يقوم بتشغيل الموجه بدون أدوات MCP ويمنع هذا الفشل المتوقع في التهيئة. وبالتالي قد تنتهي المطالبة التي تعتمد على MCP دون البيانات أو الإجراء المطلوب. لا تقم بجدولة المطالبات التي تتطلب MCP.

هل يعمل MCP متىASH_STRICT=1؟

نعم. يقوم سطر عنوان URL الخاص بـ HTTP(S) بتسجيل خادم MCP بشكل صريح ولا يتم التعامل معه على أنه shell قابل للتنفيذ. لا يؤدي الوضع الصارم إلى تعطيل خوادم MCP التي تم تكوينها. لا يزال ينطبقAshحماية المخرجات غير الموثوق بها لمحتوى الأداة الذي تم إرجاعه.

كيف يعمل MCP OAuth، وأين يتم تخزين بيانات الاعتماد؟

بالنسبة لخادم محمي بواسطة OAuth،Ashيفتح صفحة التفويض في متصفح سطح المكتب عندما تكون واجهة المستخدم الرسومية متاحة؛ إذا لم يتمكن من فتح المتصفح، فإنه يطبع عنوان URL للتفويض يدويًا في متصفح على نفس المضيف. يستخدمash mcp add <url> --no-browserلاستخدام التدفق الطرفي دائمًا. بالنسبة لاتصالات OAuth المباشرة، يسمح الاكتشاف بعناوين IP غير العامة فقط لسلطة MCP المسجلة بالضبط؛ يظل مضيفو OAuth الآخرون خاضعين لحظر العناوين غير العامة. وكيل الخروج الذي تم تكوينه مسؤول عن تصفية عناوين الوجهة الخاصة به. يتعامل الوسيط مع رد الاتصال وتبادل الرموز والتحديث وجلسة MCP المستمرة. يتم تخزين بيانات الاعتماد في مدير بيانات اعتماد نظام التشغيل عند توفرها. إذا لم يكن متاحًا، فقم بتكوين الإجراء الاحتياطي للملف المشفر باستخدام 32 بايت عشوائيًاASH_MCP_CREDENTIAL_KEY;Ashلا يخزن المفتاح نفسه أبدًا.

أين يمكنني العثور على AUTH_KEY لموفري خدمات الذكاء الاصطناعي السحابي الأكثر شهرة؟

ashالاستخداماتASH_AI_AUTH_TOKENللرمز المميز لحامله الاختياري؛ ولا يقوم بإنشاء أو توزيع مفاتيح الموفر. قم بإنشاء مفتاح في حساب المزود الخاص بك، مثلOpenAI,أنثروبي,استوديو جوجل للذكاء الاصطناعي,أزور أوبن إيه آي,ميسترال,التحم,جروك,xAI,ديب سيك,معا منظمة العفو الدولية,OpenRouter,HuggingFace، أوأولاما، ثم قم بتصديره كمتغير بيئة الموفر (أو setASH_AI_AUTH_TOKENمباشرة).ash installيكتشف تلقائيًا متغيرات البيئة المدعومة الخاصة بالموفر. يجب أن تستخدم نقاط النهاية السحابية HTTPS وتتطلب رمزًا مميزًا باستثناء AWS Bedrock؛ عناوين خاصة/LAN و.localيتم التعامل مع أسماء المضيفين على أنها محلية إلا إذاASH_STRICT=1تم ضبطه.

يفعلashفتح اتصال جديد في كل مرة؟

ليس للاستخدام التفاعلي العادي لـ Unix Shell. يبدأ Bash وzsh وFish وسيطًا واحدًا لكل جلسة Shell، ويتواصلون معه من خلال مقبس Unix خاص، ويعيدون استخدام تجمع اتصال HTTP المحدود الخاص به. يخرج الوسيط بعد عدم النشاط؛ تستخدم المهام المجدولة الطلبات المباشرة بدلاً من وسيط الصدفة المستمر.

هل يستخدم فيش الوسيط؟

نعم. يبدأ برنامج Fish Wrapper ويعيد استخدام نفس الوسيط لكل جلسة مثل bash وzsh، ويقوم بتحديث عقد الإيجار الخاص به مباشرة قبلashالطلب، ويحافظ على هدوء إعداد الوسيط.

ماذا يحدث إذا كان الطلب بطيئًا أو غير متاح أو غيرت رأيي؟

يضعطCtrl-Cلإلغاء طلب على متن الطائرة. المهلة الافتراضية لطلب الذكاء الاصطناعي هي ثلاث دقائق؛ تعيينASH_AI_TIMEOUT، على سبيل المثالASH_AI_TIMEOUT=90s، لتغييره.ashإعادة المحاولة في حالات فشل الذكاء الاصطناعي القابلة لإعادة المحاولة بما يصل إلى ثلاث مرات افتراضيًا مع تراجع قصير المدى؛ ضبط هذا السلوك معASH_RETRY_MAX_ATTEMPTS,ASH_RETRY_BASE_DELAY، وASH_RETRY_MAX_DELAY.

السلامة والتحكم

كيف أقفلashلتكون أكثر أمانا، وما هي الآثار المترتبة؟

اجعل القائمة المسموح بها القابلة للتنفيذ ضيقة، وفضل أدوات القراءة فقط، ولا تضف أوامر مميزة أو مدمرة. تعيينASH_STRICT=1لحظر أنماط الحقن الفوري المعترف بها من الأدوات والملفات والبرامج النصية وخط الأنابيب ومخرجات الوكيل الفرعي غير الموثوق بها. يمكن أن يؤدي هذا أيضًا إلى إخفاء النص الشرعي الذي يشبه محاولة الحقن. القائمة المسموح بها هي حدود تنفيذ، وليست وضع حماية:ashوالأدوات المسموح بها لا تزال تعمل مثلك.

يستطيعashتشغيل الأوامر المدمرة مثلrm؟

ليس مع القائمة المسموح بها الافتراضية المثبتة. ينصح صراحة ضدrm,mv,dd,chmod,chown,kill، وsudo. إذا قمت بإضافة واحد منهم،ashيمكن أن تطلب ذلك مع الأذونات الخاصة بك؛ مراجعة هذا القرار بعناية.

كيف أغير الأوامرashمسموح له التنفيذ؟

يحرر$XDG_CONFIG_HOME/ash/.ash_allow(تقصير~/.config/ash/.ash_allow) وسرد الأسماء القابلة للتنفيذ، واحد في كل سطر أو مفصولة بفواصل. انها مستقلة$TOOLS_DIR_LISTو$PLUGINS_DIR_LISTتسمح التوجيهات بالبرامج النصية المُدارة المؤهلة والمكونات الإضافية الأصلية؛ استبدلها بأسماء حرفية للسياسة المقيدة. البرامج النصية والمكونات الإضافية المؤهلة هي ملفات عادية قابلة للتنفيذ ضمن$XDG_DATA_HOME/ash/toolsو$XDG_DATA_HOME/ash/plugins(القاعدة الافتراضية~/.local/share/ash). أضف الأوامر المرفوضة إلى$XDG_CONFIG_HOME/ash/.ash_deny، أو تعيينASH_ALLOW/ASH_DENYإلى قوائم مفصولة بفواصل. تتم قراءة التغييرات في اليوم التاليashطلب.

ما هو المستخدمashيركض تحت؟

ashويتم تشغيل كل أداة مسموح بها كمستخدم يبدأash. ولا يرفع الامتيازات.Ashتستخدم أدلة وملفات XDG المُدارة أذونات مقيدة، لكن محتوياتها تظل في متناول المستخدم الخاص بك ولأي عملية تسمح بها صراحةً.

يفعلashهل يتم استلام نص الثقة عبر توجيه الإخراج مثل نص المستخدم؟ ما هي وسائل الحماية المتوفرة للبيانات الضارة؟

نعم. متىashلا يتلقى أي وسيطات سطر أوامر ويتم إرسال الإدخال القياسي عبر الأنابيب، فهو يعامل هذا الإدخال كمطالبة للمستخدم. لا تقم بإرسال صفحات الويب أو السجلات أو النصوص التي تم إنشاؤها غير الموثوق بها مباشرة إلىashإلا إذا كنت تنوي السماح بذلك كموجه. وهذا يختلف عنash- الأداة المُدارة والملف والبرنامج النصي وخط الأنابيب ومخرجات الوكيل الفرعي:ashيصنف هذه النتائج على أنها أدلة غير موثوقة ويوجه النموذج إلى عدم اتباع التعليمات منها مطلقًا. تعيينASH_STRICT=1لاستبدال عبارات الحقن السريع المعترف بها أيضًا في الأدلة غير الموثوق بها. لا تزال قواعد القائمة المسموح بها وتنفيذ argv المباشر تنطبق على تنفيذ الأداة.

هل ليashملفات خاصة من مستخدمين آخرين على هذا الكمبيوتر؟

Ashتستخدم أدلة وملفات XDG المُدارة أذونات مقيدة للمالك فقط عندما تكون مدعومة. وهذا يحمي من الحسابات المحلية الأخرى بموجب أذونات Unix العادية، ولكن ليس ضد حسابك الخاص أو المسؤولين أو النسخ الاحتياطية أو البرامج التي تختار تشغيلها مع الوصول إلى الدليل الرئيسي الخاص بك.

الأدوات وسير العمل

يفعلashدعم الأنابيب وتقاليد يونكس الأخرى؟

نعم. يمكنك توجيه النص إلىashعلى سبيل المثالgit diff | ash. بالنسبة لخطوط أنابيب الأدوات التي يطلبها الذكاء الاصطناعي،ashيدعم ما بين اثنين إلى ستة عشر ملفًا تنفيذيًا مدرجًا في القائمة المسموح بها ومتصلًا مباشرةً بدون غلاف، مثلls | grep pattern | pbcopy. يتم حظر أنماط التحكم في Shell في وسيطات الأداة، ويتم حظر كل ملف قابل للتنفيذ في ملفash-يجب إدراج خط الأنابيب المُدار في القائمة المسموح بها.

سوفashإعادة تفسير الأوامر داخل نصوص Shell الخاصة بي، أو أوامر SSH، أو وظائف cron؟

لا، تعود أغلفة التكامل Bash وzsh فورًا في الأصداف غير التفاعلية، لذا تحافظ البرامج النصية ووظائف CI وأوامر SSH وأوامر cron على السلوك العادي للأوامر غير الموجودة. استخدم استدعاء صريحًا مثلash "summarize this log"أوsome-command | ashعندما يجب أن تتصل الأتمتةash.

كيف أتوقفashمن تفسير أوامري لبضع دقائق؟

يجريash snoozeلمدة خمس دقائق افتراضية، أو حدد مدة مثلash snooze 30sأوash snooze 1h. يجريash snooze offلاستئناف العمل على الفور. يقوم الغفوة بإيقاف التوجيه التلقائي للأوامر غير الموجودة والتوجيه المجمّع مؤقتًا؛ صريحةash ...الأوامر لا تزال تعمل.

كيف يمكنني تصحيحashومعرفة المزيد من المعلومات حول ما تفعله؟

تعيينASH_VERBOSE=1قبل الجريashلتمكين إخراج التصحيح المنظم ولوحة معلومات التنفيذ الطرفي. تعيينASH_LOG_FILEلكتابة تصحيح JSON إلى ملف؛ASH_LOG_MAX_BYTESيتحكم في التدوير والإعدادات الافتراضية هي 1 ميجابايت عند تكوين ملف السجل.

ما هي الحدود التي تنطبق متىashيدير الأدوات؟

بشكل افتراضي، يكون لكل استدعاء أداة مهلة مدتها 15 ثانية ويلتقط ما يصل إلى 8192 بايت من الإخراج. قد يقوم طلب الذكاء الاصطناعي بإجراء ما يصل إلى 16 تكرارًا لحلقة الأدوات، وash- يتكون خط الأنابيب المُدار من مرحلتين إلى ستة عشر مرحلة. اضبط مهلة الأداة وحد الإخراج باستخدامASH_TOOL_TIMEOUTوASH_TOOL_OUTPUT_MAX; حافظ على تركيز الإخراج باستخدام أوامر مثلhead,tail، أوgrep.

أين هو موجه النظام الافتراضي؟

ملف المطالبة الكنسي هو$XDG_CONFIG_HOME/ash/.ash_system(تقصير~/.config/ash/.ash_system)، تم تثبيته من الإعداد الافتراضي المجمّع عند التشغيلash install. الملفات الموجودة تحت القديم~/.ashلا يتم ترحيل مساحة العمل أو قراءتها تلقائيًا. عادي$VARIABLEيتم توسيع القيم من البيئة، ولكن$TOOLS_DIR_LIST,$PLUGINS_DIR_LIST، و$IF_PYTHON_AVAILABLEمحجوزة داخلياAshالبدائل وليس المستمدة من البيئة.

أين أضع البرامج النصية الخاصة بي والمكونات الإضافية الأصلية؟ashللاتصال كأدوات؟

ضع نصوص بايثون الخاصة بالمستخدم$XDG_DATA_HOME/ash/tools/والمكونات الإضافية الثنائية الأصلية$XDG_DATA_HOME/ash/plugins/(القاعدة الافتراضية~/.local/share/ash). تأكد من أنها قابلة للتنفيذ، وأضف الاسم القابل للتنفيذ إلى$XDG_CONFIG_HOME/ash/.ash_allow(أو الاعتماد على$TOOLS_DIR_LIST/$PLUGINS_DIR_LIST).Ashلا يستدعي shell لأوامر Unix والمكونات الإضافية المسموح بها.

ما هي أفضل الممارسات للأداة أو البرنامج الإضافي حتى يفهم الذكاء الاصطناعي غرضه واستخدامه؟

اتبععقد البرنامج المساعد الأصلي: كشف خيارات CLI التي يمكن التنبؤ بها وتنفيذها--help,--versionوإصدار JSON--ai-docsالبيانات الوصفية، ووصف مخططات الإدخال/الإخراج وسلوك الفشل. قم بإصدار JSON مدمج ومنظم مع ملفstatusتفاصيل الأخطاء الميدانية والقابلة للتنفيذ بدلاً من النثر الممزوج بالبيانات. حافظ على تحديد المخرجات، والتحقق من صحة المدخلات، وضبط مهلات الشبكة، وجعل الأداة آمنة للاتصال بشكل متكرر. أضف اسم الملف العاري إلى$XDG_CONFIG_HOME/ash/.ash_allow;ashلا يمكن تنفيذه إلا عندما يكون مدرجًا في القائمة المسموح بها وغير مدرج فيها$XDG_CONFIG_HOME/ash/.ash_deny.

ما هي البرامج النصية للأداة المتوفرة والمكونات الإضافية الأصلية؟

البرامج النصية المثبتة لـ bootstrap Python هيheadlines.py,wikipedia.py، وyfinance.pyفي$XDG_DATA_HOME/ash/tools/. المكونات الإضافية الأصلية المقدمة هيwhat_time_is_it(يذهب)،flip_a_coin(الصدأ)، وcalculator(تايب سكريبت) في$XDG_DATA_HOME/ash/plugins/.

تُضمّن إضافات Rust، ومنها flip_a_coin، في Linux وFreeBSD فقط. تتضمن إصدارات macOS الإضافتين what_time_is_it وcalculator، لكنها تستبعد إضافات Rust.

لماذا تغيب إضافة Rust عن macOS، وكيف أثبّتها يدويًا؟

يستبعد macOS إضافات Rust، ومنها flip_a_coin، لبناء المعماريتين على Linux دون مشغّلات macOS وتقليل تكلفة CI. هذا ليس قيد توافق. يحتفظ Homebrew بإضافات Go وTypeScript؛ ويحتفظ Linux وFreeBSD بإضافات Rust.

على جهاز Mac، ثبّت أدوات سطر أوامر Xcode (xcode-select --install عند الحاجة) وRust عبر rustup. نفّذ الأوامر التالية حيث تريد إنشاء نسخة جديدة من المستودع. يبني Makefile الخاص بالإضافة لمعمارية جهازك ويثبّت مباشرة في دليل المستخدم، دون sudo.

git clone https://github.com/Jonconradt/ash.git
cd ash
rustup toolchain install 1.99.0 --profile minimal
plugin_dir="${XDG_DATA_HOME:-$HOME/.local/share}/ash/plugins"
make -C internal/app/ash_bootstrap/plugins_src/flip_a_coin build BUILD_DIR="$plugin_dir"
"$plugin_dir/flip_a_coin" --version
"$plugin_dir/flip_a_coin" --ai-docs

استخدم Makefile الخاص بالإضافة، لا make plugins-build الذي يتجاوز Rust على macOS. أبقِ $PLUGINS_DIR_LIST في ${XDG_CONFIG_HOME:-$HOME/.config}/ash/.ash_allow أو أضف flip_a_coin؛ ويجب ألا يظهر في .ash_deny. ابدأ استدعاءً جديدًا لـ ash. شغّل "$plugin_dir/flip_a_coin" للاختبار دون مزوّد ذكاء اصطناعي.

يستطيعashاستدعاء الوكلاء الفرعيين؟

نعم. يمكن للوكيل الأصلي استخدامهrun_sub_agentلمهمة واحدة مركزة ومستقلة. يرث الطفل دليل العمل والتكوين والأدوات وأذونات نظام التشغيل، ويعيد نتيجة محددة، ولا يمكنه إنشاء طفل آخر. الحد الأقصى الافتراضي هو ستة وكلاء فرعيين لكل تشغيل رئيسي ويمكن تغييره باستخدامASH_MAX_AGENTS.

يستطيعashإنشاء ملفات ذاكرة لتتبع المهام المعقدة وما تعلمته في الجلسة؟

نعم. يمكنه كتابة ملفات مساحة العمل الدائمة ضمن$XDG_CONFIG_HOME/ash(تقصير~/.config/ash)، والتي يتم تعقبها في مخزون مساحة العمل الخاصة بها، والملفات المؤقتة على مستوى الجلسة ضمن$XDG_STATE_HOME/ash/scratch/<session-id>/(القاعدة الافتراضية~/.local/state/ash). يعد برنامج Scratch اختياريًا: استخدمه للنصوص البرمجية القابلة لإعادة الاستخدام، أو البيانات الوسيطة، أو النتائج المتراكمة، أو العناصر القابلة للمراجعة عندما تضيف قيمة. أدواتها هيread_scratch_file,write_scratch_file,append_scratch_file,replace_scratch_file,edit_scratch_file، وlist_scratch_files. نشيطAshوعمليات الوسيط تحمي جلستها من خلال قفل نظام التشغيل. يتم تنظيف الدلائل غير المؤمنةAshالخروج فقط بعد مرور أكثر من 48 ساعة ولم يتم الوصول إليهم خلال 24 ساعة؛ لا تمنع ملفات قفل بقايا الأعطال عملية التنظيف اللاحقة. استخدم ملفات مساحة العمل الدائمة للحصول على المعلومات التي تنوي الاحتفاظ بها.

يستطيعashجدولة العمل في وقت لاحق؟

نعم، من خلال أدوات الذكاء الاصطناعي. في نظام التشغيل macOS، تستخدم الجدولة لمرة واحدة لكل مستخدمlaunchdLaunchAgent ويتطلبlaunchctl. في Linux، يتم دعم الجداول الزمنية المتكررة من خلال المستخدم الخاص بكcrontab;ashيدير فقط الإدخالات المميزة الخاصة به. لمرة واحدةlaunchdلا يتوفر برنامج الجدولة على نظام التشغيل Linux، لذا استخدم إدخال cron أو برنامج جدولة Linux آخر لمهمة Linux لمرة واحدة. تتلقى عمليات التشغيل المجدولة بيئة محدودة وتستخدم HTTPS المباشر بدلاً من وسيط الصدفة التفاعلي، لذا تأكد من توفر تكوين الذكاء الاصطناعي المطلوب للمهمة المجدولة. لا يمكنهم استخدام أدوات MCP عن بعد؛Ashيعمل بدونها ولا يحذر في الجلسات غير التفاعلية. لا تقم بجدولة المطالبات التي تتطلب MCP.

الجلسات والتخزين

أين هي ملفات التاريخ أو السجل لash؟

يتم تخزين سجل المحادثات بتنسيق JSON ضمن$XDG_STATE_HOME/ash/history/(تقصير~/.local/state/ash/history/). يتم تخزين السجل المجدول وسجلات التصحيح ضمن دليل الحالة نفسه. يمكنك اختيار مسار آخر لسجل التصحيح باستخدامASH_LOG_FILE.

ما هي مدة الاحتفاظ بملفات التاريخ؟

ashيزيل ملفات سجل JSON الأقدم من 14 يومًا أثناء التنظيف العادي للتطبيق، بميزانية تنظيف تبلغ 300 مللي ثانية حتى لا يتأخر الخروج. نافذة الرسائل الأخيرة منفصلة: فهي تحتفظ بما يصل إلى 40 رسالة لكل محادثة بشكل افتراضي ويمكن تغييرهاASH_HISTORY_MAX.

كيف يمكنني مسح محادثة أو البدء من جديد؟

يتم فصل السجل عن طريق معرف الجلسة ومفتاح نموذج/نقطة نهاية الذكاء الاصطناعي. ابدأ جلسة طرفية جديدة لمعرف جلسة جديد، أو قم بإزالة ملف JSON ذي الصلة ضمن$XDG_STATE_HOME/ash/history/(تقصير~/.local/state/ash/history/) عندما تريد عمدًا تجاهل سجل المحادثات المحلي هذا. لا تؤدي إزالة ملف السجل إلى إلغاء مفتاح الموفر أو حذف البيانات من جانب الموفر؛ إدارة تلك بشكل منفصل مع الموفر.

ما هوASH_SESSION_IDوأين يتم إنشاؤه؟

إنهAshمعرف لكل جلسة يستخدم لفصل المحفوظات والمساحة المؤقتة ومآخذ التوصيل الوسيطة وأسماء السجلات المجدولة. تقوم بيئة الصدفة المُدارة بإنشاء واحدة عند بدء تشغيل الصدفة وتحافظ عليها عند إعادة مصدرها؛Ashينشئ واحدًا للاستدعاءات بدون قيمة مقدمة من الصدفة. عامSESSION_IDيتم تجاهله.

هل يمكنني تقديم الخاص بيASH_SESSION_ID؟

نعم.Ashيتحقق من صحة المعرفات الصريحة ويرفض القيم غير الصالحة بدلاً من استبدالها بصمت. تتكون المعرفات الصالحة من 128 حرفًا على الأكثر وتستخدم الحروف والأرقام والشرطات السفلية والواصلات، مع لاحقة نقطة اختيارية واحدة للجلسة التابعة. لا تستخدم قيمًا مشتركة أو غير موثوقة: تجمع التصادمات بين سجل الجلسة وحالة وقت التشغيل.

الدعم والمجتمع

كيف يمكنني تقديم خطأ؟

افتح قضية فيgithub.com/Jonconradt/ash/issuesمعashالإصدار أو الالتزام، ونظام التشغيل الخاص بك والقشرة، والتكوين ذي الصلة بالمشكلة مع إزالة الأسرار، والخطوات القابلة للتكرار، والنتيجة الملحوظة. بالنسبة للثغرة الأمنية، لا تفتح قضية عامة؛ قم بالإبلاغ عنها بشكل خاص عبر البريد الإلكتروني أو الاستشارات الأمنية لـ GitHub.

هل يوجد منتدى للمناقشة فيashمشروع؟

نعم. يستخدممناقشات جيثبللأسئلة والأفكار، وقضايا جيثبللأخطاء القابلة للتكرار والعمل المتعقب.