Skip to main content

ما يأتي افتراضياً

تأتي هذه القدرات ضمن مساحة العمل الافتراضية عند إنشاء وولفيش لمجلد ~/.wolffish/workspace/ عند التشغيل الأول. كل قدرة تتواجد في مجلدها الخاص تحت brain/cerebellum/.
بدون حواجز اصطناعية. بُني وولفيش لنماذج أذكى وأكثر قدرة. أزلنا المهل الزمنية المشفرة وحدود النتائج والقيود التعسفية من جميع إضافات القدرات — بما فيها حدود حجم الملفات القديمة (100MB للمستندات والجداول، 500MB للصوت)، التي سقطت في الإصدار 1.0.224 حين صارت المرفقات يقودها النموذج بالكامل: محتوى الملف يُقرأ عند الطلب عبر الأدوات، فلا يكلّف الملف الضخم شيئاً حتى لحظة الرجوع إليه فعلاً. النموذج يقرر متى يضع مهلة زمنية وكم نتيجة يطلب. الأوامر تعمل حتى تنتهي طبيعياً. الحد الوحيد المتبقي هو مخزن إخراج الأدوات (100KB) — يحمي الذاكرة، لا يقيّد الوظائف.
ليس كل شيء في السياق دفعةً واحدة. كل قدرة أدناه تسجَّل عند بدء التشغيل وتظهر في فهرس القدرات لدى النموذج، لكن المجموعة الأساسية وحدها هي التي تُرسل مخططات أدواتها الكاملة مع كل طلب — tool-discovery وintrospect وfilesystem وshell وask وutilities وweb-search وsecrets وsystem وvideo، ومُحمِّل operating-manual وأدلّة pdf-design وweb-design وdataviz، إضافةً إلى قدرتَي سير العمل والقنوات عند نشاطهما. أما كل ما عداها (GitHub وGoogle والمتصفحات والوسائط والمستندات وخوادم MCP) فيُحمَّل عند الطلب عبر tool_search / tool_activate ويصبح قابلاً للاستدعاء في الدور نفسه. راجع نظرة عامة على القدرات لكيفية عمل هذا العرض.

الإدارة الذاتية

يستطيع وولفيش قراءة قدراته وإدارتها وكتابتها أثناء التشغيل — دون تعديل في الشيفرة ودون إعادة تشغيل. هذا جوهر ما يجعله قابلًا للتوسّع: أيّ سير عمل تكرّره كثيرًا يمكن أن يصير أداة دائمة بمجرّد أن تطلب.

skills — إدارة قدراته وتأليفها بنفسه

النوع: إضافةالمحفزات: skill, skills, capability, create a skill, new skill, teach yourself, add a tool, list skills, disable skill, enable skill, delete skill, what can you do, extend yourselfيتيح لوولفيش أن يدير — ويكتب — قدراته أثناء التشغيل. يمكنه سرد ما لديه والبحث فيه، وقراءة مصدر مهارة ليتعلّم نمطها، وتفعيل المهارات وتعطيلها (حتى المدمجة، مثل «أطفئ المتصفّح»)، وحذف ما أنشأتَه منها، وتأليف مهارات جديدة من طلب مثل «افعل هذا في كل مرة».الأدوات:
  • skill_list — يسرد كل مهارة: الاسم والوصف وحالة التفعيل/الرسمية وعدد الأدوات
  • skill_search — يبحث في المهارات بالكلمات المفتاحية عبر الاسم والوصف والمحفزات وأسماء الأدوات
  • skill_read_source — يقرأ ملف SKILL.md وشيفرة الإضافة لمهارة قبل تعديلها أو التعلّم منها
  • skill_enable / skill_disable — يفعّل أيّ مهارة أو يعطّلها (قابل للتراجع؛ القدرات الأساسية التي لا غنى عنها لا تُعطَّل — انظر تخصيص القدرات)
  • skill_delete — يحذف نهائيًا مهارةً أنشأتَها (المهارات الرسمية/المدمجة محميّة)
  • skill_create — يؤلّف مهارة نقية أو قدرة بإضافة من الصفر
  • skill_reload — يعيد فحص مساحة العمل لتأخذ التغييرات مفعولها
تُحفظ التغييرات وتأخذ مفعولها في الدور التالي. هكذا يوسّع وولفيش نفسه دون تعديل في الشيفرة — انظر التأليف الذاتي للمهارات لدورة الإنشاء ← الاختبار ← التعديل كاملةً ومثال جاهز للنسخ واللصق.
النوع: إضافة (Plugin)المُحفّزات: automation, automations, automate, schedule, scheduled, heartbeat, cron, recurring, every morning, every day, daily, weekly, remind me, run automatically, from now onتتيح لوولفيش إدارة نبضه — المهام التي تعمل تلقائياً وفق جدول. اطلب شيئاً متكرراً (“كل صباح…”) أو لمرة واحدة (“بعد يومين ذكّرني…”) فيكتب المهمة أو يعدّلها أو يحذفها نيابةً عنك، وتُطبَّق مباشرةً دون إعادة تشغيل. يختار لمرة واحدة أم متكررة من صياغتك؛ مهام المرة الواحدة (In (15m) / Once (2026-...)) تعمل مرة ثم تحذف نفسها.الأدوات:
  • automation_list — يسرد كل مهمة: جدولها، توقيتها بلغة واضحة، تعليمتها، وهل هي صالحة/قيد التشغيل
  • automation_create — ينشئ مهمة (متكررة أو لمرة واحدة) من جدول + تعليمة، مع mode اختياري (فردي أو سير عمل) وicon اختياري — رمز تعبيري يختاره وولفيش ليلائم المهمة (📧 لجولة البريد، 📰 لموجز الأخبار)، يظهر على بطاقتها ويُختَم على محادثات تشغيلاتها
  • automation_edit — يغيّر جدول مهمة و/أو تعليمتها و/أو وضعها
  • automation_delete — يزيل مهمة نهائياً (يطلب تأكيدك)
  • automation_check — حالة التشغيل: ما الذي يعمل الآن وكيف جرت آخر التشغيلات
  • automation_run — يُشغّل مهمة فوراً لتجربتها
يمكن أن يبدأ متن المهمة أيضاً بأسطر علامات الإعدادات — أسطر mode: وicon: وproject: التي تربط المهمة بمشروع فتنال تشغيلاتها سياق المشروع. الأدوات تحفظ هذه العلامات تلقائياً.مهام النبض تعمل بموافقة تلقائية على الأدوات، لذا يؤكّد معك أي شيء متكرر أو ذي أثر قبل جدولته. ضغط الذاكرة يُعدّ في الإعدادات بشكل منفصل، لا هنا.
النوع: إضافة (Plugin)المُحفّزات: procedure, procedures, saved prompt, reusable prompt, prompt template, playbook, run my, save this asتتيح لوولفيش إدارة صفحة الإجراءات — أوامر قابلة لإعادة الاستخدام تشغّلها عند الطلب بزرّ تشغيل، على خلاف الأتمتات التي تعمل وفق جدول. قل «احفظ هذا إجراءً» أو «شغّل موجز الصباح» فينشئ الإجراء أو يعدّله أو يشغّله نيابةً عنك. يُنفَّذ التشغيل في الخلفية كمحادثةٍ جديدة مستقلة (تظهر في السجل بأيقونة التشغيل) ولا يمسّ المحادثة التي أنت فيها.الأدوات:
  • procedure_list — يسرد كل إجراء محفوظ: رقمه وعنوانه ومعاينة سطرٍ واحد من الأمر
  • procedure_view — يعرض عنوان إجراءٍ واحد وأمره الكامل
  • procedure_create — يحفظ إجراءً جديداً (عنوان + أمر مكتفٍ بذاته، مع وضع فردي/سير عمل اختياري)
  • procedure_edit — يغيّر عنوان إجراء و/أو أمره و/أو وضعه
  • procedure_delete — يزيل إجراءً نهائياً
  • procedure_run — يشغّل إجراءً الآن في محادثة خلفية جديدة
كل إجراء يلبس رمزاً تعبيرياً (يظهر على بطاقته ويُختَم على محادثات تشغيلاته في قائمة المحادثات)، ويمكن ربط الإجراء بمشروع فتنال تشغيلاته تعليمات المشروع وملفاته.
النوع: إضافة (Plugin)المُحفّزات: project, projects, new project, project instructions, project files, add to project, workspace contextتتيح لوولفيش إدارة مشاريعك — الحِزم المسماة من التعليمات الدائمة والملفات التي تُطلِع كل محادثة تبدأ بداخلها. قل «أنشئ مشروعاً لتجديد المطبخ بهذه الملفات» فينشئ المشروع ويضع التعليمات ويرفق الملفات — الأشياء نفسها التي تفعلها صفحة المشاريع يدوياً.الأدوات:
  • project_list — كل مشروع: رقمه ورمزه وعنوانه وعدد ملفاته وآخر تعديل
  • project_view — مشروع واحد كاملاً: الرمز والعنوان والتعليمات الكاملة وقائمة الملفات مع وجود كل ملف وحجمه
  • project_create — ينشئ مشروعاً (عنوان، رمز تعبيري اختياري، تعليمات اختيارية)
  • project_update — يغيّر عنوان مشروع و/أو رمزه و/أو تعليماته
  • project_add_files — يرفق ملفات بمسارها؛ كل مصدر يُنسَخ إلى مجلد المشروع الخاص (uploads/project-<id>/)، فلا يتعلّق المشروع أبداً بأصلٍ نُقل أو حُذف
  • project_remove_file — يفصل ملفاً (تُحذف نسخة المشروع؛ الأصول خارج مساحة العمل لا تُمَسّ أبداً)
  • project_conversations — يسرد كل محادثة تابعة لمشروع: عنوانها وعدد رسائلها وآخر نشاطها
  • project_delete — يزيل مشروعاً نهائياً؛ محادثاته السابقة تبقى في السجل وتفقد سياق المشروع في الأدوار المقبلة فحسب
النوع: إضافة (متاحة للقائد وحده — في وضع سير العمل فقط وللقائد دون سواه؛ الوكلاء لا يرون هذه الأدوات أبداً)تتيح لقائد سير العمل هندسة التشغيلة: يعلن المراحل، ويوزّع الشرائح المستقلة على وكلاء متوازين أحياء بنماذج يختارها لكل شريحة، ويستلم كل تقرير لحظة وصوله، ويوجّه الوكلاء أو يلغيهم في منتصف عملهم، ثم يولّف إجابةً واحدة. كل ذلك يُعرض على بطاقة سير العمل الحية في المحادثة، مأخوذاً من قياسات المنصة.الأدوات:
  • workflow_plan — يعلن مراحل التشغيلة (أو يراجعها)؛ تضيء على بطاقة سير العمل مع عمل وكلائها واكتمالهم
  • agent_spawn — يُطلق وكيلاً حياً في الخلفية على مهمة مكتفية بذاتها، مع model اختياري لكل وكيل (provider/model-id) وجهد تفكير effort ومرحلة phase
  • agent_send — يرسل متابعة إلى وكيل خامل؛ فيعمل من جديد وسياقه السابق كامل
  • agents_await — ينتظر حتى يصل الوكيل التالي ويعيد تقريره الكامل (أول الواصلين، لا كلهم)
  • agent_cancel — يلغي وكيلاً فوراً، مع إجهاض استدعاء الأداة الجاري لديه
النوع: إضافةالمحفّزات: mcp, model context protocol, mcp server, connect a server, add a server, tool server, external toolsتتيح لوولفيش إدارة اتصالاته بخوادم MCP — خوادم الأدوات الخارجية التي يستدعي أدواتها. قل «اربط خادم التفسير» أو «ما خوادم MCP المتصلة؟» أو «احذف ذاك» فيفعل تماماً ما تفعله صفحة الإعدادات ← بروتوكول سياق النماذج؛ تنعكس تغييراته هناك حيّاً، ويرى هو تغييراتك اليدوية. وأدوات الخادم المضاف حديثاً تصبح قابلة للاستدعاء من الدور التالي.الأدوات:
  • mcp_list — كل خادم مهيّأ: اسمه، محلي/بعيد، حالته الحية، عدد أدواته
  • mcp_add — يضيف خادماً ويربطه فوراً (أمر للمحلي، رابط http(s) للبعيد؛ مع اسم ومتغيرات بيئة اختيارية)
  • mcp_test — يتحقق من خادم الآن؛ ويدفع المنقطع لإعادة الاتصال
  • mcp_enable / mcp_disable — يوقف خادماً أو يستأنفه دون حذف
  • mcp_remove — يزيل خادماً نهائياً مع تسجيل دخوله المخزّن (يطلب تأكيدك)
  • mcp_authorize — يبدأ تدفق تسجيل الدخول عبر المتصفح لخادم بعيد يتطلبه

كيف تطلب من وولفيش أن يبني مهارة لنفسه

لا تكتب أيّ شيفرة — تصف القدرة بلغة طبيعية ويتولّى وولفيش تأليفها لك. وأوضح الطلبات هي ما يشير إلى حاجة متكرّرة:
  • «من الآن فصاعدًا، كلّما أرسلت لك ملف CSV، نظّفه وردّ بجدول ملخّص.»
  • «اصنع لنفسك مهارة تنشر تقرير وقوف يومي في قناة Slack.»
  • «أنت تكرّر يدويًا عملية تغيير الحجم وإضافة العلامة المائية — حوّلها إلى أداة قابلة لإعادة الاستخدام.»
  • «علّم نفسك تتبّع الطرود انطلاقًا من رقم التتبّع.»
عندما تطلب ذلك، يقوم وولفيش بـ:
  1. اختيار نوع المهارة — مهارة نقية (إجراء مكتوب يتّبعه بأدوات يملكها أصلًا)، أو مهارة بإضافة (أداة جديدة فعلية مدعومة بـ JavaScript)، أو إضافة باعتمادات npm — مختارًا الأصغر الذي يفي بالغرض.
  2. كتابة الملفات عبر skill_create — ملف SKILL.md (الاسم والوصف والمحفّزات) إضافةً إلى plugin/index.mjs وملف package.json فقط عند الحاجة إلى أداة جديدة فعلية.
  3. تحميلها واختبارها مباشرةً، ثم تصبح متاحة من رسالتك التالية — مدرجةً في فهرس القدرات ويعثر عليها tool_search كلّما طابقت صياغتُك محفّزاتها.
كن محدّدًا في المحفّز («كلّما…»، «في كل مرة…») وفي النتيجة التي تريدها. يبني وولفيش مهارات قابلة لإعادة الاستخدام لا مهامًّا لمرّة واحدة — فللمهمّة الواحدة ينفّذ العمل مباشرةً بدل صنع مهارة. ويمكنك دائمًا أن تقول «اسرد مهاراتك» لرؤية ما لديه، أو «احذف تلك المهارة» لإزالة ما صنعه.

النظام الأساسي

tool-discovery — العثور على الأدوات وتحميلها عند الطلب

النوع: إضافة (يسجّلها نظام التشغيل نفسه، لا مجلد في مساحة العمل)ليست كل أداة محمَّلة مسبقًا في سياق النموذج. فهرس القدرات في موجّه النظام يسرد كل ما هو موجود؛ وهاتان الأداتان تجعلان أيًّا منه قابلًا للاستدعاء:الأدوات:
  • tool_search — يبحث في كل قدرة مثبَّتة (بما فيها خوادم MCP) بحسب ما تحتاج إلى فعله. يطابق أسماء القدرات وأوصافها وكلماتها المحفِّزة وأسماء أدواتها؛ وتُحمَّل أفضل نتيجة تلقائيًا وتصبح أدواتها قابلة للاستدعاء في الدور نفسه.
  • tool_activate — يحمّل قدرة بعينها باسمها الدقيق، مأخوذًا من فهرس القدرات أو من نتيجة tool_search.
التفعيلات لكل محادثة على حدة ومحدودة بعشر قدرات غير أساسية، وتُزاح الأقل استخدامًا مؤخرًا. الإزاحة غير مرئية: استدعاء أداةٍ مُزاحة (أو لم تُفعَّل قط) مباشرةً يعيد تفعيل قدرتها تلقائيًا ويُنفَّذ الاستدعاء بشكل طبيعي. محمَّلة دائمًا.
النوع: إضافةالمحفزات: run, execute, command, terminal, shell, bash, npm, npx, git, pip, docker, curlتغلّف child_process في Node.js لتنفيذ أوامر الشل. الأداة المحورية التي تعتمد عليها العديد من القدرات الأخرى.الأدوات:
  • shell_exec — تشغيل أمر مع مسار عمل ومهلة اختياريين. الأوامر تعمل حتى تنتهي طبيعيًا. مرّر timeout فقط عندما تريد فشلًا سريعًا (مثلًا 5000 مللي ثانية لفحص which سريع). احذفه لعمليات التثبيت والبناء أو أي شيء بمدة غير متوقعة.
  • shell_jobs — سرد مهام الخلفية التي بدأتها هذه المحادثة: ما الذي يعمل، ومنذ متى
  • shell_stop — إيقاف مهمة خلفية واحدة، أو إيقافها كلّها
منذ الإصدار 1.0.288 تعمل الأوامر في مجلّد عمل المحادثة افتراضيًا بدل مجلّد المنزل، فيهبط npm test وgit status داخل المشروع دون أن يُدَلّا عليه. وتعود المخرجات بلا رموز ألوان ANSI (NO_COLOR=1 وPAGER=cat)، والمخرجات الطويلة تحتفظ بآخر 2000 سطر أو 50 كيلوبايت — وهي نهاية السجلّ حيث يُبلَّغ عن الإخفاق — مع كتابة النصّ الكامل في ملفٍّ تحت <workspace>/tool-output/ يسمّيه الناتج، فلا يضيع شيء ويستطيع الوكيل البحث في السجلّ بدل إعادة البناء كلّه. أمّا الأمر الذي يشبه خادم تطوير أو مراقبًا فيُرفَض في المقدّمة بدل تعليق الدور: يُبدَأ في الخلفية بدلًا من ذلك، يسرده shell_jobs ويُنهيه shell_stop قبل انتهاء الدور.الأمان:
  • حظر: mkfs، dd if= (تدمير على مستوى القرص)
  • مدمر: rm -rf، sudo (يتطلب موافقة)
  • تأكيد: تثبيت الحزم، عمليات docker
الترقية (sudo / doas) تتوثّق عبر جلسة المدير المحفوظة في التطبيق: تكتب كلمة سرّك في حوار نظامي واحد على الأكثر لكل تشغيلة للتطبيق، والأوامر المميّزة اللاحقة تعيد استخدام الجلسة المحفوظة في الذاكرة — دون حاجة إلى TTY. والجلسة على مستوى التطبيق كله، فوكلاء سير العمل والتشغيلات المجدولة يترقّون عبر الجلسة نفسها التي تخدم المحادثة.وضع الخلفية (background: true) يفصل العملية ويعيد رقم PID فورًا — استخدمه لخوادم التطوير والمراقبين والعمليات طويلة التشغيل.
النوع: إضافةالمحفزات: file, read, write, edit, create, save, open, patch, modify, folder, directoryتغلّف fs في Node.js لعمليات الملفات الدقيقة دون الحاجة للشل.الأدوات:
  • file_read — قراءة ملف أو سرد مجلّد. تعود الأسطر مرقّمة N: text (والرقم ليس جزءًا من المحتوى قطّ)؛ والقراءة تُبَثّ بثًّا، فسحب شريحة من سجلٍّ بحجم جيجابايت لا يكلّف إلا الشريحة. والمسار المفقود يُجاب عنه بأسماء قريبة بدل خطأ مجرّد.
  • file_edit — منذ الإصدار 1.0.288. تعديلٌ جراحيّ بنصٍّ مطابقٍ تمامًا: يمسّ النصّ المطابَق وحده، ويُبقي كلّ ما لم تلمسه مطابقًا بايتًا ببايت، ويرفض التطابق الملتبس بدل أن يخمّن، ويعيد فرقًا حقيقيًّا. هذه هي أداة تغيير ملفٍّ قائم.
  • file_write — إنشاء أو استبدال ملفٍّ كاملًا (يدعم وضع الإلحاق). للملفات الجديدة وللاستبدال الكامل المقصود.
  • file_grep — منذ الإصدار 1.0.288. البحث في محتوى الملفات بـ ripgrep عبر قاعدة شيفرة بأيّ حجم، مع احترام .gitignore.
  • file_glob — منذ الإصدار 1.0.288. إيجاد الملفات بنمط الاسم (**/*.test.ts، src/**/*.tsx)، مع احترام .gitignore. يعيد حتى 100 مسار مطلق.
  • file_patch — متقاعدة، وتبقى اسمًا بديلًا لـ file_edit مع replaceAll. تستبدل كلّ تطابقات نصٍّ حرفيّ.
  • image_view — يعيد بكسلات الصورة الفعلية لنموذج رؤية عند الطلب — الطريقة التي يقودها النموذج للنظر في صورة بدل حقنها تلقائيًا. منذ الإصدار 1.0.254 النموذجُ هو من يختار المشهد: منطقة قصّ لقراءة جزء واحد بحدّته الأصلية (والقصّ أرخص أيضًا — فالسعر يتبع البكسلات المُرسلة فعلًا)، ودقّة حين يحتاج نصٌّ صغير إلى استبانة، وPNG بلا فقدان للقطات الشاشة والواجهات والمخططات حيث تؤذي لطخاتُ JPEG. والمشهد الأكبر من أن يُرسَل يُصغَّر تلقائيًا، ومنذ الإصدار 1.0.253 تصل البكسلات حقًّا إلى كل نموذج قادر على الرؤية — بما فيها Grok وKimi وQwen وStepFun وGLM ومتغيّرات -VL من MiniMax/Mimo وdeepseek-v4-flash-vision-exp من DeepSeek، لا Claude وGPT وحدهما
يُفضَّل استخدام هذه الأدوات بدلاً من shell_exec لعمليات الملفات — فهي أسرع وأكثر أمانًا وتنتج سجلات تدقيق أنظف. وابحث ولا تخمّن: file_grep حين تعرف ما يحتويه الملف، وfile_glob حين تعرف تقريبًا ما اسمه. وكلّ file_edit وfile_write تُلتقَط لقطتُه قبل أوّل تغيير في الدور، وهي ما تستعيد منه changes_revert — وفي التطبيق والطرفية والهاتف يُرسَم التعديل فرقًا موحّدًا حقيقيًّا لا بطاقةَ أداةٍ عامّة.
النوع: بيئة التشغيل (يسجّلها المحرّك نفسه، لا مجلّد في مساحة العمل) · أساسيّة — قابلة للاستدعاء دائمًامنذ الإصدار 1.0.288. قبل أوّل تغيير يُجريه دورٌ على ملفّ، يحتفظ وولفيش بـالبايتات الأصلية. وهذه اللقطة هي ما يجعل «هذا الإصلاح زاد الأمر سوءًا، أعِده» جملةً واحدة لا عمليةَ إنقاذ.الأدوات:
  • changes_list — سرد تغييرات الملفات المسجّلة في هذه المحادثة، الأحدث أوّلًا: أيّ ملفات عدّلها أو أنشأها كلّ دور
  • changes_revert — إعادة الملفات إلى حالتها قبل دورٍ ما. الملفات المعدَّلة تستعيد بايتاتها الأصلية، والملفات التي أنشأها الدور تُحذَف. الافتراضيّ آخر دور؛ ومرِّر معرّف دورٍ من changes_list، وpath للتراجع عن ملفٍّ واحدٍ منه.
لا تحتاج إلى git وتعمل في أيّ مجلّد، وتحتفظ بـآخر عشرين دورًا لكلّ محادثة. وهي قابلة للاستدعاء دائمًا — فالتراجع لا يكلّف قفزة اكتشاف أدوات.
النوع: بيئة التشغيل · أساسيّة ومقفلةمنذ الإصدار 1.0.288. حين يبلغ العمل ثلاث خطوات فأكثر، يحتفظ الوكيل بقائمة تحقّق، وتظهر في المحادثة بطاقةً تتحدّث في مكانها — عنصرٌ واحدٌ قيد التنفيذ لا غير، ولا يُشطَب عنصرٌ إلّا بعد الفحص الذي يثبت أنّه تمّ حقًّا. فتترك التشغيلة الطويلة قائمةً واحدة في السجلّ تبيّن أين وصلت الأمور، بدل نسخةٍ جديدة تُطبَع مع كلّ مراجعة.الأدوات:
  • todo_write — كتابة قائمة المهام للعمل متعدّد الخطوات: العناصر، وأيّها قيد التنفيذ
البطاقة هي شريط التقدّم على كلّ الأسطح — التطبيق والطرفية والهاتف — وتنتقل إلى ملفّ الـPDF المصدَّر كذلك. ولا تسمح بيئة التشغيل بأن ينتهي دورٌ وفيه عناصر أنجزها الوكيل فعلًا وما زالت مفتوحة، والقائمة التي تركتها تشغيلةٌ مقطوعة تُستأنَف وتُحسَم على البطاقة الأصلية، حيث رأيتها أوّل مرّة، لا على ثانيةٍ جديدة.
النوع: بيئة التشغيل · أساسيّة ومقفلةمنذ الإصدار 1.0.303. حتى ذلك الحين كان أمام دورٍ عنده وقتٌ ليقتله ثلاثةُ خياراتٍ سيّئة: sleep في الصدفة لا تراه ولا تقاطعه، أو استدعاءُ الأداة نفسها مراراً في حلقة استقصاء، أو تسليمُ العمل والبدء من الصفر.الأدوات:
  • wait — حجبُ الدور لمدّة seconds، مع reason مطلوبٍ بكلمات المستخدم نفسه
ولها لا سقف — عشرُ ثوانٍ أو أربعُ ساعات، ما يحتاجه العمل، يُطلب مرّةً واحدة. ورُفض السقفُ عمداً، لأنّ التقييد يعيدك إلى حلقة الاستقصاء التي وُجدت الأداةُ لتحلّ محلّها. وأثناء الحجب، بطاقةٌ تقول لماذا الوكيل خامل ومتى يستيقظ، بعدّادٍ تنازليّ، مع مُدخَلٍ ينهيه مبكّراً — وكلُّ ما ترسله من أيّ مكان (الصندوقُ نفسه، أو المحرِّر، أو هاتفك، أو تيليجرام، أو واتساب) يفعل ذلك. وانتظارٌ واحد لكلّ محادثة: فاستدعاءٌ ثانٍ متزامن عطلٌ في النموذج، فيُرفض بدل أن يُكدَّس.وثلاثُ نهايات، وتسمّي نتيجةُ الأداة أيَّها وقعت: elapsed (انتهى المؤقّت)، و**interrupted** (وصلت رسالة — ونصُّها لا يُستهلك هنا، بل يبقى في صندوق منتصف الدور ويصل كرسالة المستخدم التالية)، و**canceled** (أُوقف الدور). والثلاثُ تمرّ عبر settle() واحدةٍ محروسة، فلا يعيش مؤقّتٌ أو سجلٌّ أطول من انتظاره.وثلاثُ أدواتٍ تبدو متشابهة وليست كذلك: wait يُبقي هذا الدور وكلَّ ما فيه؛ و**countdown** لفعلٍ يجب أن يقع بعد إرسال الردّ؛ و**automation_create** بجدولٍ لمرّةٍ واحدة يبدأ دوراً جديداً بعد ساعاتٍ أو أيّام من ما كُتب في تعليمته فقط. انظر الانتظار.
النوع: بيئة التشغيل · أساسيّة ومقفلةمنذ الإصدار 1.0.309. كان زمنُ التنفيذ يقول للدور المنتهي أن يُغلق بـردٍّ فارغٍ تماماً — صفرِ حرف — ولا مزوّد يحمل رسالةً فارغة. فصار للدور الذي لم يبقَ له ما يقوله حركةٌ واحدة مشروعة: يكتب بديلاً عن الصمت ((no output) أو [Empty response] أو [(empty — nothing further)]) ويرسله إليك. والوصيّةُ كانت مستحيلة، والحلُّ المؤقّت هو العطل.الأدوات:
  • close_turn — إنهاءُ الدور حين يكون كلُّ شيءٍ قد قيل وسُلِّم
وقول «لا شيء بعد» صار استدعاءَ أداة، وهو ما يستطيع النموذجُ إنتاجه فعلاً، بدل رسالةٍ من صفر حرف لا يستطيعها. ويبقى الأمرُ بقيادة النموذج من أوّله إلى آخره: لا شيء يعيد كتابة حرفٍ كتبه النموذجُ أو يجرّده أو يكتمه — فالنموذجُ ما زال يقرّر متى ينتهي الدور، وصار له فقط طريقةٌ حقيقية ليقولها. وعمليّاً ستّراه نادراً: فال دورُ الذي أنجز عملاً حقيقياً ينتهي بأن يخاطبك.وتحته صار الحارسُ الذي يلتقط الصمتَ المُتظاهَر به بنيويّاً بدل قائمة عباراتٍ مكتوبةٍ باليد ظلّت تخسر السباق إلى الصيغة التالية. فمجموعةٌ قصيرة بين قوسين تُغلق ردّاً وتكون عن غياب المحتوى تُطلقه — بما في ذلك علامةٌ ملتصقةٌ مباشرةً بنهاية نصّ، وبما في ذلك العباراتُ نفسها في الصينيّة المبسّطة والتقليديّة، لأنّ سبعةً من المزوّدين الذين يخاطبهم وولفيش مختبراتٌ صينيّة. والجُمَلُ الاعتراضيّة العاديّة تبقى محتوىً: The build ran clean (no output) وBlockers: (none) لا يُشكَّك فيهما أبداً. والحارسُ يرصد ويُخبر؛ ولا يحرّر.
النوع: بيئة التشغيل · أساسيّة ومقفلةمنذ الإصدار 1.0.294. تقوم هذه القدرة على قاعدة واحدة: لا يعمل داخل الدور شيءٌ يقطع ردّ الوكيل نفسه. فالإجراء من هذا النوع يُسلَّح لا يُنفَّذ — ينهي الوكيل جوابه، وتُحفَظ المحادثة، وعندها فقط تظهر بطاقة عدّ تنازليّ في المحادثة تحمل اسم الإجراء، وشريطًا ينضب في نحو عشر ثوانٍ، وزرّ إحباط. فإذا فرغ الشريط نُفّذ الاستدعاء؛ وإن ضغطت إحباط لم يُنفَّذ أبدًا.الأدوات:
  • countdown_start — تسليح أيّ استدعاء أداةٍ ليعمل بعد ثوانٍ من انتهاء الردّ، على تلك البطاقة
يُفحَص الاستدعاء المسلَّح بـقواعد الأمان نفسها تمامًا التي تحكم استدعاءه مباشرةً، وإن كان يحتاج موافقتك رُفعت بطاقة الموافقة لحظة التسليح — لا لاحقًا حين لا يكون هناك من يجيب. والبطاقة جزءٌ حقيقيّ من المحادثة، فتصل إلى هاتفك بزرّ إحباطٍ عامل، والمحادثة التي تُفتَح لاحقًا تقول ما جرى: نُفّذ، أو أحبطتَه، أو أُسقط لأنّ الدور أُوقف قبل أن يهبط ردّه. ولا يبقى شيءٌ معلّقًا عبر إعادة التشغيل. وعدٌّ تنازليّ واحد معلّق في كلّ وقت — تسليحُ ثانٍ يحلّ محلّ الأوّل — والأتمتة لا تستطيع تسليح واحدٍ أصلًا، لأنّ بطاقتها لا يراها أحد.بهذه الآلية يعيد system_power التشغيل ويُطفئ ويخرج من الحساب (انظر system)، وعلى قناة محادثة يُحبطها ‎/cancel‎.
النوع: إضافةالمحفزات: install, package, brew, winget, apt, dependencyيكتشف ويستخدم مدير الحزم المناسب للنظام: Homebrew (macOS)، winget (Windows)، apt (Debian/Ubuntu)، dnf (Fedora/RHEL). عمليات التثبيت تعمل حتى الاكتمال — بدون مهلة.الأدوات:
  • pkg_check — فحص مدير الحزم المتاح
  • pkg_install_manager — تثبيت Homebrew على macOS إن لم يكن موجودًا (لا يفعل شيئًا في غيره)
  • pkg_install — تثبيت حزمة مع حل الاسم المناسب لكل منصة
القدرات الأخرى تُعلن عن اعتماداتها النظامية عبر حقل packages في SKILL.md — ومدير الحزم يحل الاسم الصحيح لكل منصة.
النوع: إضافةالمحفزات: node, npm, npx, nvm, javascript, js, typescript, tsيتحقق من تثبيت Node.js ويثبّته عبر مدير الحزم إن لم يكن موجودًا. التثبيت يعمل حتى الاكتمال.الأدوات:
  • node_check — التحقق من تثبيت Node.js والحصول على الإصدار
  • node_install — تثبيت Node.js عبر مدير حزم النظام
بعد التثبيت، استخدم shell_exec لأوامر node وnpm وnpx.

تسليم الملفات

النوع: إضافةالمحفزات: send file, attach, attachment, deliver file, share file, upload file, open folder, reveal in finderأدوات مساعدة صغيرة محمَّلة دائمًا لا تنتمي إلى قدرة أكبر — تسليم الملفات، ومناولتك المواضع القابلة للفتح.الأدوات:
  • send_file — يسلّمك أيّ ملفّ، بأيّ نوعٍ وأيّ حجم، مرفقًا في المحادثة التي أنت فيها. يظهر كبطاقة ملف في تطبيق سطح المكتب ويُرفع رفعًا أصيلًا على Telegram وWhatsApp. ولا تفرض محادثةُ التطبيق ولا الطرفيّةُ حدًّا للحجم من عندها؛ أمّا Telegram وWhatsApp فيفرضان سقوف الرفع الخاصّة بهما ويقولان ذلك حين يكون الملفّ أكبر من أن يُرسَل هناك.
  • show_path — يدفع بطاقة موضعٍ قابلة للفتح إلى محادثة التطبيق: للمجلد زر فتح (مباشرة إلى مدير ملفات نظامك)، وللملف زر إظهار (يفتح مجلده والملف محدَّد). هكذا يُسلَّم المكان — مجلد هيّأه وولفيش أو رتّبه، دفعة مخرجات، ملف تُرك عمدًا حيث طلبت. لا شيء يُستخرَج من النثر: البطاقة توجد فقط عند استدعاء الأداة، والمسار يجب أن يكون موجودًا فعلًا. داخل التطبيق فقط — وعلى Telegram وWhatsApp يُذكر المسار نثرًا بدلًا منها.
هذه هي الطريقة الوحيدة التي يصلك بها ملف. لا توجد أداة توليد تسلّم مخرجاتها تلقائيًا — لا pdf_create ولا ffmpeg ولا المتصفح ولا سكربت شل. يعامل وولفيش التسليم جزءًا من المهمة: لحظة انتهاء أي مهمة تُنتج ملفًا، يكون send_file هو الاستدعاء الأخير — حتى للملفات النصية الصغيرة، وحتى عندما عُرض المحتوى أيضًا في المحادثة. إنهاء الرد بعبارة «حُفظ في ~/path» ليس تسليمًا. وإن طلبت صراحةً أن يُحفظ ملف في مكان ما فحسب، فطلبك يُحترم — وحين يكون وولفيش غير متأكد فعلًا، يسأل بدل أن يحجب الملف بصمت. ويسرد نظام التشغيل الملفات المُرسلة في هذا الدور، فلا يصلك الملف نفسه مرتين أبدًا.المسارات يمكن أن تكون مطلقة أو نسبيةً إلى ~/ أو إلى مساحة العمل؛ والملفات خارج مساحة العمل تُنسخ إلى files/ ليستطيع العارض داخل التطبيق تحميلها.

الويب والبحث

النوع: إضافةالمحفزات: search, google, look up, find online, web, browse, latest, news, documentationيوفر بحثًا على الويب واسترجاع صفحات للحصول على معلومات حديثة.الأدوات:
  • web_search — البحث في الويب. يُعيد العناوين والمقتطفات والروابط — لا صفحةً أبداً. الافتراضي 5 نتائج، دون حد أقصى مفروض. وكلّ استعلامٍ ينفق مالاً حقيقيّاً، فهو لحسم معلومةٍ واحدة أو معرفة أيّ رابطٍ يُفتَح.
  • web_fetch — طلب GET واحد بسيط لرابط، يعود نصّاً. فوريّ ومجّاني، لكنّه لا يرى إلا ما يعطيه الخادم لطلبٍ عارٍ: فالصفحات المُصيَّرة بـ JS تعود فارغة، وتهزمه جدرانُ الدفع وتسجيلُ الدخول وجدرانُ الموافقة وفحوصُ الروبوتات.
وهاتان طريقٌ من ثلاث، لا الطريق الوحيد. فمنذ الإصدار 1.0.236 تعلّم المهارةُ هذه المقايضة صراحةً، والطريق الثالث — إضافة المتصفح التي تقود متصفّحك الحقيقيّ — هو الافتراض كلّما كان المدى أو الوثوقيّة مهمّاً: موقعٌ مسمّى، أو صفحةٌ مسجَّلة الدخول أو مدفوعة، أو أيّ شيءٍ مُصيَّرٍ بـ JS، أو أيّ شيءٍ يحتاج نقرة، أو مهمّةٌ تمتدّ على أكثر من صفحةٍ أو صفحتين. فجلبتان فاشلتان تكلّفان أكثر ممّا كان سيكلّفه فتح المتصفّح.والصفحة التي تعود بضع مئات من المحارف، أو لافتةَ ارتباطات، أو «فعّل JavaScript»، أو نموذجَ دخول، أو جدارَ اشتراك لم تُحمَّل — بل أخفقت في صمتٍ برمز 200. والوكيل مُعلَّمٌ أن يقرأ ما عاد إليه قبل أن يثق به، وأن يصعد بدل أن يعيد الجلب أو يجيب من الشظيّة.وإذا تم تكوين مفتاح Brave API في المتغيرات، يفضل الوكيل أداة بحث Brave بدلاً من ذلك.
النوع: إضافةالمحفزات: browser, web, website, navigate, login, scrape, screenshot, form, click, automateيُطلق نسخة Chromium بدون واجهة للمهام التفاعلية على الويب — ملء النماذج، النقر على الأزرار، التنقل في تطبيقات الصفحة الواحدة، واستخراج المحتوى المُنشأ بـ JavaScript. يستخدم التنقل المهلة الافتراضية لـ Playwright إلا إذا مررت timeout_ms صراحةً.الأدوات:
  • browser_launch — بدء جلسة متصفح (مع واجهة/بدون واجهة، مقاس العرض، اللغة)
  • browser_navigate — الانتقال إلى رابط
  • browser_click — النقر على عنصر بمحدد CSS
  • browser_type — كتابة نص في حقل إدخال
  • browser_screenshot — التقاط الصفحة الحالية
  • browser_evaluate — تنفيذ JavaScript في سياق الصفحة
  • browser_close — إنهاء الجلسة
استخدم web_fetch للصفحات الثابتة — استخدم المتصفح فقط عندما تحتاج للتفاعل.

المستندات والوسائط

النوع: إضافةالمحفزات: document, word, docx, report, letter, memo, template, convert documentقراءة وإنشاء وتعديل وتحويل المستندات (docx, html, markdown, نص عادي).الأدوات:
  • document_read — استخراج المحتوى كنص أو HTML أو Markdown من أي مستند
  • document_create — إنشاء ملف .docx مع عناوين وفقرات وجداول وصور وقوائم ورؤوس/تذييلات
  • document_modify — تعديل المستندات الموجودة
  • document_convert — التحويل بين الصيغ
  • document_merge — دمج مستندات متعددة
النوع: إضافةالمحفزات: pdf, merge pdf, split pdf, watermark, form fill, encrypt pdf, compress pdf, figure, diagram, chart, render page, extract imagesحزمة أدوات بي دي اف كاملة مع دعم الاتجاه من اليمين لليسار والعربية — مبنية للتعامل مع ملفات PDF بحجم الكتب. محرّك القراءة كسول ومخزَّن: يُحلَّل المستند مرة واحدة لكل محادثة، وتُسبَر أعداد الصفحات من فهرس الملف نفسه دون تحميل كامل، ولا يُحقَن شيء من أي PDF في السياق تلقائيًا — يرجع وولفيش إليه عبر هذه الأدوات حين يهمّ محتواه.الأدوات:
  • pdf_info — حقائق ملف PDF دون قراءته: عدد الصفحات والبيانات الوصفية والحجم — الاستدعاء الأول على أي مستند كبير
  • pdf_search — بحث نصّي كامل داخل PDF يعيد الصفحات المطابقة مع مقتطفات — هكذا يُتنقَّل في كتاب من 3,000 صفحة
  • pdf_read — استخراج النص بنطاق صفحات (كسول ومخزَّن، فتبقى القراءات المتتابعة من مستند ضخم سريعة)
  • pdf_create — إنشاء ملفات بي دي اف مع عناوين وفقرات وصور وجداول (يدعم RTL مع خطوط مخصصة)
  • pdf_modify — تعديل ملف PDF قائم (صفحات ومحتوى)
  • pdf_form — قراءة حقول نماذج PDF وتعبئتها
  • pdf_render_pages — تصيير صفحات كاملة إلى PNG/JPEG — هكذا يُعرَض شكلٌ أو رسمٌ بيانيّ أو خوارزميّة أو جدول، إذ يلتقط الصفحة كما طُبِعت
  • pdf_extract_images — حفظ الصور والأشكال النقطيّة المضمّنة في صفحات مسمّاة كملفّات صور
  • pdf_merge — دمج عدة ملفات بي دي اف
  • pdf_split — استخراج نطاقات صفحات في ملفات منفصلة
  • pdf_secure — تشفير/فك تشفير بكلمات مرور
  • pdf_compress — تقليل حجم الملف
عرض الشكل مقابل استخراجه. شكلُ الكتاب المدرسيّ مرسومٌ في الغالب — خطوطٌ وصناديقُ ونصٌّ تضعها مجرى محتوى الصفحة — ولا صورة مخزَّنة في الملفّ أصلاً. لذا يُجاب سؤال «أرِني الشكل 7.2» بـpdf_render_pages (الذي يلتقط الصفحة كما طُبِعت ويعمل دائماً)، بينما pdf_extract_images للأصول التي يخزّنها الـ PDF حقّاً: صورة فوتوغرافية، أو لوحة ممسوحة، أو رسمٌ تريده وحده. وكلاهما يأخذ تحديد pages ويعمل بنطاق الصفحات، فلا يحتاج أيٌّ منهما إلى تقسيم المستند أوّلاً — والاستخراج على كتابٍ بأكمله ليس الخيار الصائب أبداً، إذ يخزّن المرجع الكبير عشرات الآلاف من الشظايا دون الكيلوبايت. والشظايا دون 80 بكسل تُتخطّى افتراضيّاً.أما إرشادات تصميم المستندات المؤلَّفة فتقيم في دليل pdf-design أدناه — يحمّله الوكيل قبل إنشاء أي شيء منسَّق؛ وتبقى pdf_create الخيارَ الاحتياطي البسيط غير المنسَّق.
النوع: إضافة — أساسية، محمَّلة دائماً ولا يمكن إطفاؤهاالمحفزات: pdf design, document design, report layout, styled documentأداة واحدة بمهمة واحدة: pdf_design تحمّل دليل تصميم المستندات إلى السياق، وعقد التشغيل يُلزم الوكيل بندائها قبل تأليف أي PDF أو مستند منسَّق ستقرؤه. كانت المستندات المولَّدة تتأرجح بين الجيّد حقاً والمعطوب ظاهراً لأنّ وصفة التصميم كانت تقيم حيث نادراً ما يقرؤها النموذج؛ صار الدليل تلك الوصفةَ في موضع واحد — خطوةُ تخطيطٍ للصفحات كي لا تخرج صفحةٌ نصفُها فارغ، وبنيةُ أوراقٍ ثابتة بتذييلٍ جارٍ ورقمِ صفحةٍ حقيقيّ، وسلّمُ خطوطٍ واحد، ولونُ تمييزٍ واحد مع صفحاتِ متنٍ فاتحةٍ دائماً، وعُدّةُ مكوّنات (غلاف، وفهرس، وفواتح أقسام، وبطاقات أرقام، وجداول بخطوط شعرية، وتنبيهات، وأختام مصدر)، وقواعدُ العربية والاتجاه من اليمين إلى اليسار، ودمجُ الرسوم البيانية، وفحصُ تحقّق إلزاميّ: يصيّر الوكيل صفحاتٍ عيّنةً صوراً عبر pdf_render_pages وينظر إليها قبل أن يسلّم شيئاً.الأدوات:
  • pdf_design — تحميل دليل تصميم المستندات (متن الدليل لا يكلّف شيئاً حتى يُنادى — فالدائم هو سطر المخطط وحده)
وتعليماتك أنت تبقى هي الغالبة دائماً — الأتمتة التي تطلب تصميماً بسيطاً تظلّ تناله كما هو بالضبط.
النوع: إضافة — أساسية، محمَّلة دائماً ولا يمكن إطفاؤهاالمحفزات: chart, graph, plot, visualize, dataتحمّل dataviz دليل تصوير البيانات الذي يستشيره الوكيل قبل عرض الأرقام — متى يستحق الرسم مكانه (ومتى يكون الرقم أو الجدول هو الجواب الأمين)، وأيّ شكلٍ يلائم أيّ بيانات، وكيف يوسِمه ويرتّبه ويسنده إلى مصدره. ويغطي مسارَي الإخراج معاً:
  • بطاقات رسوم تفاعلية في محادثة التطبيق. يكتب الوكيل ملف مواصفات ينتهي بـ .chart.json ويسلّمه عبر send_file؛ فيعرضه التطبيق بطاقةَ رسمٍ حيّةً منسَّقةً على سمة التطبيق فاتحِها وداكنِها. أحد عشر نوعاً — أعمدة وأشرطة وخطية ومساحية ودائرية وحلقية وانتثارية وخرائط حرارة ورادار وعدّادات وأقماع — مع تلميحات ووسائل إيضاح، وعرضٍ موسَّع يملأ الشاشة بمبدّل رسم ⇄ بيانات، وحفظٍ كصورة. والمواصفة غير الصالحة أو التي تتجاوز 1 ميغابايت تنحدر إلى بطاقة ملف عادية تبقى قابلة للتنزيل.
  • رسومٌ داخل ملفات PDF المولَّدة، تُرسَم على النظام البصري نفسه بهندسة دقيقة للطباعة ولوحة ألوانٍ ثابتة من ثماني خانات مُتحقَّقٍ من أمانها لعمى الألوان وتُسنَد بالترتيب.
وعلى واتساب وتيليجرام يصل ملف .chart.json مرفقَ مستندٍ عاديّاً، لذا يُعلَّم الوكيل أن يفضّل جدولاً نصياً هناك.الأدوات:
  • dataviz — تحميل دليل تصوير البيانات
النوع: إضافة — أساسية، محمَّلة دائماً، لا يمكن إطفاؤهاالمحفزات: web design, website, web page, html page, info site, docs site, microsite, landing page, interactive report, one-pagerثالث أدلّة التصميم وأحدثها. اطلب دليلاً أو كتيّباً أو تقريراً في هيئة صفحة ويب، فكان ما يعود إليك رهناً بمزاج النموذج ذلك اليوم. تحمّل web_design دليل تصميم الويب إلى السياق، ويلزم عقدُ التشغيل الوكيلَ باستدعائها قبل أن يكتب سطر HTML واحداً لأيّ شيءٍ يفتحه إنسانٌ في متصفّح — تماماً كما تعمل pdf-design مع المستندات.ويحمل الدليل:
  • معايرة المعالجة وخريطة الأقسام — خطوة تخطيطٍ قبل أيّ ترميز، فتُقرَّر هيئة الصفحة بدل أن تُكتشَف.
  • بنية عمودٍ وشريط تبقى متجاوبة من سطح المكتب إلى عرض الهاتف.
  • سمتَي فاتحٍ وداكن — تفضيل النظام مع مفتاح تجاوز — مبنيّتين على طقم رموزٍ واحد.
  • أصوات محرفيّة من أطقم خطوط النظام، وطقم مكوّنات: لوحة غلاف، وشريط فهرس، وملاحظات، ولوحات أشكال، وجداول رفيعة الحدود، وأقراص، وشبكات بطاقات، وأسئلة وأجوبة، وخطوات، وقوائم تحقّق.
  • قواعد أشكال SVG المرسومة باليد، مصبوغةً بألوان الصفحة لا مُنزَلةً صوراً جاهزة.
  • JavaScript تحسينٌ لا أساس — فالصفحة يجب أن تُقرأ كاملةً والنصوص البرمجيّة مطفأة، وتصل ملفّاً واحداً قائماً بذاته.
  • قواعد العربيّة والاتّجاه من اليمين إلى اليسار، بالانضباط نفسه الذي يطبّقه دليل المستندات.
  • تمريرة تحقّقٍ إلزاميّة: يلتقط الوكيل صورة الصفحة المنتهية بـ browser_screenshot وينظر إليها عبر image_view — في السمتَين معاً، بعرض سطح المكتب وعرض الهاتف — قبل أن يسلّمها.
الأدوات:
  • web_design — تحميل دليل تصميم الويب (ومتن الدليل لا يكلّف شيئاً حتى يُستدعى — فالحضور الدائم مجرّد سطر مخطّط). يقبل وسيط page اختياريّاً يسمّي ما أنت بصدد تصميمه؛ وذكرُه التزامٌ بالدليل.
ولأنّ بطاقة المعاينة في المحادثة معزولةٌ عن عمد، صارت كلُّ بطاقة موقعٍ تحمل زرّ فتحٍ في المتصفّح — الصفحة الحيّة، من موضعها الحقيقيّ، ونصوصها البرمجيّة تعمل.وتعليماتك أنت تغلب دائماً — فالطلب أو الأتمتة التي تحدّد التصميم تحديداً كاملاً تظلّ تحصل على ذلك بالضبط.
النوع: إضافةالمحفزات: spreadsheet, excel, xlsx, csv, tsv, table, data, formula, chartقراءة وإنشاء وتعديل وتحليل ملفات جداول البيانات.الأدوات:
  • spreadsheet_read — قراءة xlsx/csv/tsv مع اختيار ورقة ونطاق خلايا اختياري
  • spreadsheet_create — إنشاء جداول بيانات جديدة مع أوراق وأعمدة وصفوف وأنماط متعددة
  • spreadsheet_modify — تعديل الملفات الموجودة (إضافة صفوف، تحديث خلايا، إضافة أوراق)
  • spreadsheet_analyze — حساب الإحصائيات والملخصات والأعمدة المشتقة
القيمُ تُخزَّن مع الصيغ (منذ الإصدار 1.0.301). كان مصنَّفٌ مليءٌ بالصيغ قد يعود شبكةً من الخلايا الفارغة — كُتبت الصيغُ لكن لم تُخزَّن قيمةٌ بجوارها، فيرى ما يقرأ الملفَّ دون فتح Excel لا شيء. وكلُّ كتابةِ صيغةٍ الآن تُعيد حساب المصنَّف كلَّه وتخزّن القيمةَ المحسوبة معها، فيُقرأ الملفُّ كأرقام في كلّ مكان — والنتيجةُ تسمّي أيَّ خليّةٍ قُيِّمت إلى خطأ (#DIV/0!، #REF!، #VALUE!) فيُصلَح قبل أن يصل الملفّ إليك. والرسومُ البيانيّةُ مخطّطات Excel أصليّة ترسمها Excel وNumbers وLibreOffice وتستطيع إعادةَ تنسيقها — بسبعة أنواع — بدل صورٍ ملصقة.ويعمل وولفيش إلى معيارٍ معلَنٍ لما يجعل المصنَّف جيّداً: صيغاً بدل أرقامٍ حسبها بنفسه، وكلَّ افتراضٍ في خليّته الموسومة، واصطلاحَ المحلّل في اللون — أزرقُ للمُدخَلات وأسودُ للصيغ — في النماذج الماليّة.وملفُّ .xlsx في المحادثة يُرسَم شبكةً حفظت تنسيق الملفّ — تعبئاتُه ومحارفُه وحدودُه وتنسيقاتُ أرقامه وخلاياه المدمَجة ولوحاته المجمَّدة وأعراضُ أعمدته وتبويباتُ أوراقه — منذ الإصدار 1.0.301. انظر مستندات أوفيس في التغذية.
النوع: إضافةالمحفزات: presentation, powerpoint, pptx, deck, slides, pitchاقرأ ملفّات .pptx / .potx وأنشئها وعدّلها وتحقّق منها.الأدوات:
  • deck_design — حمّل مرجع تصميم العرض قبل بناء أيّ شيء: خطوةُ تخطيط خريطة الشرائح (فكرةٌ واحدة لكلّ شريحة، وعناوينُ تدّعي دعوى ولا تسمّي موضوعاً)، وجدولُ الثيمات، وكلُّ تخطيطٍ يقدّمه المحرّك وحقوله، وقواعدُ كتابة الشرائح، وإرشادُ الرسوم البيانيّة. مطلوبٌ قبل التأليف.
  • presentation_read — اقرأ عرض أيّ كان: نصُّ كلّ شريحةٍ وملاحظاتُ المتحدّث بها، بالترتيب. وتحريرُ عرضٍ لغيرك يبدأ من هنا، لا من تخمينٍ في الصياغة.
  • presentation_create — ابنِ عرضاً بتخطيطٍ لكلّ شريحة. وهو محرّكُ تخطيطٍ لا واضعُ أشكال: أنت تقول ما تكونه كلُّ شريحة — عنوان، فاصلُ قسم، نقاط، عمودان، بطاقات، إحصاءات، خطوات، جدول، رسمٌ بيانيّ، صورة، اقتباس، خِتام — والمحرّكُ يملك الهندسةَ ومقياسَ المحارف واللوحة. وثيماتُ الألوان هي اللوحاتُ الثماني المُختبَرة نفسها التي تستخدمها مستندات PDF، فيبدو العرضُ وتقريرُه من موضعٍ واحد.
  • presentation_modify — استبدالُ نصٍّ بتطابقٍ تامّ يترك بنيةَ PowerPoint نفسها دون مساس، لأنّ إعادةَ الكتابة العامّة هي ما يجعل PowerPoint يرفض ملفّاً.
  • presentation_validate — فحصٌ بنيويّ. إلزاميٌّ على النتيجة: يلتقط العيوبَ التي تجعل PowerPoint يُعلن ملفّاً معطوباً بينما يفتحه كلُّ برنامجٍ آخر بسرور.
  • presentation_render — صيّر الشرائح ثمّ انظر إليها: presentation_render ← pdf_render_pages ← image_view هي كيف تُرى الصفحاتُ فعلاً قبل الإرسال.
ومنذ الإصدار 1.0.301 يُرسَم العرضُ في المحادثة بشريحاته الحقيقيّة، مع سهمين للتنقّل بينها — انظر مستندات أوفيس في التغذية.
النوع: إضافةالمحفزات: zip, unzip, archive, compress, extract, unpack, pack, make a zip, what’s in the zip, bundle filesأربع أدوات لملفات .zip، تعمل داخل العملية نفسها — لا تحتاج برنامج unzip ولا zip، وسلوكها واحد على macOS وويندوز. و.zip مرفقٌ من الدرجة الأولى أيضًا (حتى 512 م.ب)، فيصل الأرشيف إلى حيث تبلغه الأدوات.الأدوات:
  • archive_list — يسرد ما في الداخل دون فكّ الضغط: مسارات المدخلات وأحجامها وتواريخها، والبنية العليا، والمجاميع، وأيّ المدخلات مشفَّر. يقرأ فهرس الأرشيف وحده، فهو سريع مهما كبر الحجم. يدعم الصفحات (offset/limit) والترشيح بالأنماط — ولا يقتطع بصمت أبدًا.
  • archive_read — يقرأ ملفًا نصيًا واحدًا من داخل الأرشيف مباشرة، دون كتابة شيء على القرص. يدعم start_line/end_line؛ والمدخل الثنائي يعيد حجمه والأداة المناسبة لفتحه، لا بايتات مشوّهة.
  • archive_extract — يفكّ الضغط كلّه، أو المدخلات التي تسمّيها وحدها. وبلا وجهةٍ محدّدة ينشئ مجلدًا جديدًا بجوار الأرشيف (والأرشيف المرفوع يُفكّ في مجلد files/ في مساحة العمل)، ولا يطمس مجلدًا قائمًا أبدًا.
  • archive_create — يحزم ملفات ومجلدات في .zip جديد. والمجلد يحتفظ باسمه جذرًا للأرشيف، فيُنتج فكُّ الضغط مجلدًا لا ملفات متناثرة. وينبّهك إن دخل node_modules أو .git أو venv لتعيد التنفيذ مع exclude.
والعقد هو: انظر قبل أن تفكّ. الأرشيف مبهمٌ حتى يُسرد، وفكّ الضغط أثرٌ جانبيّ على قرصك — فالأرشيف الذي يصل بلا تعليمات يُسرد، ويُوصف في سطر («مشروع React من 212 ملفًا — src/ وpublic/ وpackage.json، مع فيديو بحجم 40 م.ب في assets/»)، ثم تُسأل عمّا تريد فعله به. أمّا الطلب الذي يجيب عن السؤال أصلًا («فكّ ضغط هذا»، «ماذا يقول README») فيُنفَّذ مباشرة.الأمان: المدخلات التي قد تكتب خارج الوجهة تُرفض رفضًا قاطعًا، ومدخلات الروابط الرمزية تُخزَّن ملفاتٍ عادية، و__MACOSX/ و.DS_Store وThumbs.db تُتخطّى مع الإبلاغ عن عددها. والأرشيف المشفَّر يُسرد رغم ذلك (فالفهرس غير مشفَّر)؛ وarchive_read وarchive_extract يقبلان كلمة سرّ.zip فقط — ويُفحص توقيع الملف نفسه لا امتداده. فـ .tar.gz أو .7z أو .rar يُرفض مع الأمر الطرفيّ الذي يعالجه بالضبط. وملفات Office (.docx و.xlsx و.pptx و.epub) هي أرشيفات zip وتُفتح هنا، لكن ذلك تحرٍّ لا طريقٌ معتاد: استعمل أدوات المستندات لتلك الصيغ.
النوع: إضافةالمحفزات: ffmpeg, video, audio, convert, transcode, compressيغلّف واجهة FFmpeg لمعالجة الوسائط المتعددة. يعمل حتى الاكتمال — بدون مهلة، بصرف النظر عن حجم الملف أو تعقيد التشفير.الأدوات:
  • ffmpeg_check — التحقق من تثبيت ffmpeg
  • ffmpeg_install — التثبيت عبر مدير الحزم
  • ffmpeg_run — تشغيل أي أمر ffmpeg (مرّر الوسائط بعد ffmpeg)
تتحقق القدرة تلقائيًا من وجود ffmpeg وتعرض تثبيته إن لم يكن موجودًا.
النوع: إضافةالمحفزات: video, generate video, make a video, text to video, image to video, animate, clip, cinematic, footage, b-roll, minimax, hailuo, h3يولّد فيديو عبر MiniMax H3 — نصّ إلى فيديو، وصورة إلى فيديو، وانتقال بين إطارٍ أوّل وأخير، أو صور ومقاطع وأصوات مرجعية لاتّساق الموضوع والحركة والصوت. والوصف يكتبه نموذج محادثتك الحالي، لا أنت ولا H3: انظر توليد الفيديو لوضع الإخراج والحدود والإعداد.الأدوات:
  • video_check — يتحقّق أنّ الخدمة مهيّأة وأنّ المفتاح يعمل. مجانيّ ولا ينفق أرصدة.
  • video_generate — يبدأ المعالجة؛ يعيد معرّف مهمّةٍ فورًا ويرفع بطاقة مهمّة حيّة في المحادثة
  • video_await — يقف حتى تحطّ المهمّة ويعيد المسار المطلق لملفّ mp4 المحفوظ
  • video_status — لقطة غير حاجزة لمهامّ الفيديو في هذه المحادثة
  • video_cancel — يلغي مهمّةً في الطابور أو جارية على الخادم
المعالجة تأخذ دقائق، فالمسار غير متزامن بالتصميم: توليد ← انتظار ← تسليم بـ send_file (أو telegram_send_video / whatsapp_send_video). والمعالجة التي تتجاوز عمر الدور يكملها التطبيق نفسه — يستعلم ويحفظ ويسلّم إلى القناة التي جاءت منها. ويعمل على مفتاحه الخاص تحت الإعدادات ← الخدمات ← توليد الفيديو، منفصلًا عن مزوّد محادثة MiniMax عن قصد.

الصوت

النوع: إضافةالمحفزات: transcribe, speech to text, stt, whisper, audio to text, dictationتحويل الكلام إلى نص محليًا باستخدام faster-whisper (CTranslate2 + PyAV) — أخفّ بكثير من Whisper المرجعي (بدون PyTorch وبدون ffmpeg خارجي). يدعم أكثر من 99 لغة مع كشف تلقائي، ويعمل بالكامل على جهازك — بدون مفاتيح API، بدون سحابة، ودون اتصالٍ تمامًا بعد الإعداد. يعمل النسخ حتى ينتهي بصرف النظر عن حجم الملف.الأدوات:
  • stt_transcribe — نسخ ملف صوتي من مسار محدد
  • stt_transcribe_upload — نسخ ملف تم رفعه في المحادثة الحالية
  • stt_transcribe_voice_memo — نسخ مذكرة صوتية وَلّدها تحويل النص إلى كلام
  • stt_detect_language — كشف لغة الكلام دون نسخٍ كامل
النماذج المتاحة: tiny، base (افتراضي)، small، medium، large — الأكبر أدقّ لكن أبطأ. يُثبَّت المحرّك في بيئة بايثون مُدارة تلقائيًا عند أول استخدام (أو عند الطلب من الإعدادات ← الخدمات ← تحويل الكلام إلى نص)، ويُنزَّل النموذج المُختار مرّةً واحدة ويُخزَّن.
النوع: إضافةالمحفزات: voice, speak, say, audio, read aloud, voice memo, ttsتحويل النص إلى كلام عصبي محليّ بالكامل باستخدام كوكورو (Kokoro) — بدون سحابة، بدون مفاتيح API، وبدون مايكروسوفت. يجري التوليف بالكامل على الجهاز وينتج ملف MP3. يعمل التوليد حتى الاكتمال — بدون مهلة.الأدوات:
  • voice_generate — تحويل النص إلى MP3 (يُعيد مسار الملف)
  • voice_respond — الرد بالكامل كمذكرة صوتية (الصوت هو الرد)
  • voice_list — عرض جميع ملفات المذكرات الصوتية في مساحة العمل
أصوات إنجليزية فقط — أمريكية (af_/am_، مثل الافتراضي af_bella) وبريطانية (bf_/bm_). يُختار الصوت وسرعة الكلام من الإعدادات ← الخدمات ← تحويل النص إلى كلام ويُطبَّقان تلقائيًا، ويُثبَّت النموذج في بيئة بايثون مُدارة عند أول استخدام (أو عند الطلب من الإعدادات، مع شريط تقدّمٍ حيّ ومعاينةٍ حقيقية داخل التطبيق).

التحكم بالإصدارات والبرمجة

النوع: مهارة نقية (بدون إضافة)المحفزات: git, commit, branch, merge, push, pull, PR, diff, stash, rebaseيعلّم نموذج اللغة كيفية استخدام shell_exec لعمليات Git وفق تفضيلات المستخدم. التعليمات تشمل:
  • تشغيل git status دائمًا قبل إجراء تغييرات
  • استخدام تنسيق Conventional Commits: type(scope): subject
  • عرض التغييرات ورسائل الالتزام المقترحة قبل التنفيذ
  • تسمية الفروع: بادئات feature/، fix/، chore/ مع kebab-case
بما أنها مهارة نقية، فليس لها إضافة — تعتمد على قدرة shell.
النوع: إضافةالمحفزات: github, pull request, PR, issue, repo, CI, actions, workflow, release, gistوصول كامل لـ GitHub API عبر Octokit. يتطلب رمز وصول شخصي (الإعدادات ← الخدمات ← GitHub).الأدوات: عرض المستودعات، إنشاء/قراءة/تحديث Issues، إنشاء/عرض/دمج PRs، عرض الفروع، تشغيل Workflows، إنشاء الإصدارات، إدارة Gists، إدارة التسميات/المعالم، مراجعة PRs، عرض الإشعارات، تمييز/تفريع المستودعات، مقارنة الفروع.التجزئة: يفرض GitHub حدًا أقصى صلبًا قدره 100 لـ per_page. لمجموعات نتائج أكبر، انتقل بين الصفحات عبر عدة استدعاءات.راجع تكامل GitHub للإعداد والاستخدام الكامل.

الخدمات الخارجية

النوع: إضافةالمحفزات: google, gmail, email, inbox, drive, calendar, events, contacts, tasks, sheetsGmail، Drive، Calendar، Contacts، Tasks، و Sheets عبر OAuth. دعم حسابات متعددة. جميع استدعاءات API تعمل حتى الاكتمال — بدون مهلات اصطناعية.الأدوات: بحث/قراءة/إرسال/رد/أرشفة Gmail، عرض/رفع/تنزيل Drive، عمليات CRUD للتقويم، جهات الاتصال، المهام، قراءة/كتابة Sheets.راجع تكامل Google Workspace للإعداد الكامل.
النوع: إضافةالمحفزات: notion, workspace, wiki, knowledge base, database, page, kanban, boardقراءة وإنشاء وإدارة محتوى Notion عبر Notion API.الأدوات: بحث، قراءة الصفحات، قراءة الكتل، إنشاء الصفحات، تحديث الصفحات، إلحاق الكتل، إنشاء/استعلام قواعد البيانات، إضافة التعليقات.راجع تكامل Notion للإعداد الكامل.
النوع: إضافةالمحفزات: cloudflare, tunnel, cloudflared, expose, public urlإنشاء أنفاق Cloudflare سريعة لكشف المنافذ المحلية على الإنترنت. التثبيت يعمل حتى الاكتمال.الأدوات:
  • cloudflared_check — فحص تثبيت cloudflared
  • cloudflared_install — التثبيت عبر مدير الحزم
  • cloudflared_tunnel — إنشاء نفق لمنفذ محلي (يُعيد رابطًا عامًا)
يتطلب دائمًا تأكيد المستخدم قبل كشف خدمة محلية.

أتمتة سطح المكتب

النوع: إضافةالمحفزات: screenshot, click, screen, desktop, mouse, keyboard, computer use, automate, UIأتمتةُ سطح المكتب للمهامّ البصريّة — أُعيد بناؤها في الإصدار 1.0.260 حول التحقّق لا الرجاء، وحُصِّنت في الإصدار 1.0.262 بنقراتٍ لا تستطيع الكذب، ثمّ أُعيد بناؤها مرّةً أخرى في الإصدار 1.0.298 حتى لم تعد قيادةُ الشاشة تسلبك فأرتك. ونمت عُدّتها في ذلك الإصدار من اثنتي عشرة أداةً إلى إحدى وثلاثين.

لا تأخذ مؤشّرك

كانت كلُّ نقرةٍ تحرّك مؤشّرك أنت، وكلُّ ضغطة مفتاحٍ تذهب إلى ما عليه التركيز، ودفعةٌ للفأرة في منتصف الإجراء ترسل النقرة إلى مكانٍ آخر. وصارت النقرات والكتابة والاختصارات والتمرير والسحب تُرسَل مباشرةً إلى النافذة الهدف في الخلفية، عبر مشغّلٍ أصليّ على macOS وويندوز ولينكس (X11، وWayland حيث يسمح المؤلِّف): مؤشّرك لا يتحرّك، والنافذة لا تُرفَع، وتبقى تعمل إلى جانبها.وحين يعجز تطبيقٌ حقّاً عن تلقّي إدخال الخلفية، ينزل وولفيش درجةً واحدة عن قصد — تسليمٌ وجيزٌ في المقدّمة مع إعادة المؤشّر إلى موضعه — ويقول أيُّ درجةٍ جرت، في الناتج، بدل أن يخفق بصمت. وcomputer_hover هي الأداة الوحيدة التي تحرّك المؤشّر الحقيقيّ عن قصد، لأنّ التلميحات وقوائم التمرير تحتاجه.

طريقان إلى إيجاد الشيء

  • بالبكسلات — لقطة ← تكبير ← تصويب ← نقر. فكلُّ صورةٍ تعيدها أداةٌ تصير الإطار الحاليّ، ويقرأ النموذج الإحداثيّات منها مباشرةً؛ والإضافة تتولّى الترجمة كلَّها (التصغير، والكثافة العالية، وإزاحات الشاشات المتعدّدة، وبكسلات النافذة المحلّيّة). وكلُّ لقطةٍ تحمل خطّي تصويبٍ يمرّان ببكسل المؤشّر بعينه، والهدفُ الصغير أو المزدحم يُكبَّر قبل أن يُنقَر أصلاً، والتكبيرُ ينبّه حين تكون المنطقة أوسع من أن تُكبَّر حقّاً.
  • بالاسم — computer_find تقرأ شجرة الوصوليّة للتطبيق، البنيةَ نفسَها التي يقرؤها قارئُ الشاشة، فتجد زرّاً أو حقلاً أو مربّع اختيارٍ أو عنصر قائمةٍ باسمه؛ ثمّ تنقره computer_click_element بمرجعه، بلا تصويبٍ بالبكسلات البتّة. ومساراتُ القوائم مثل File › Save As… تُستدعى مباشرةً لا تُصوَّب إليها. والتطبيقات الأصليّة تعرض أشجاراً غنيّة؛ أمّا محتوى الويب في المتصفّحات وتطبيقات Electron فلا يعرض عادةً إلّا إطار النافذة — والناتج يقول ذلك بصراحة بدل أن يترك النموذج يخمّن.
وحتى في النقر بالبكسلات، يُعاد إليك العنصرُ الذي يقول التطبيق إنّه تحت النقطة، فيُمسَك التصويبُ الخاطئ باستعلام وصوليّةٍ واحد لا بالعين.

دليلٌ على كلّ إجراء

يعيد كلُّ إجراءٍ سطرَ دليلٍ واحداً: كيف سُلّم، وحكمُ المشغّل على وقوع الأثر (confirmed أو partial أو unverifiable أو suspected noop أو refused)، ومقارنةٌ موضوعيّة للبكسلات قبل وبعد، والعنصرُ تحت النقطة، و — في التسليم النادر في المقدّمة — هل تحرّكت فأرتك في أثنائه، فإن تحرّكت رفض وولفيش إعادةَ أيّ شيءٍ له أثرٌ جانبيّ. وذلك الدليل يركب إلى الخطوة التالية مع ما قال النموذج إنّه يتوقّعه، فـيتحقّق النموذج قبل أن يخطّط. والنموذج ممنوعٌ صراحةً كذلك من إعادة نقر زرّ إرسالٍ اعتماداً على التقرير وحده.

مؤشّر الشاشة، ومؤشّرٌ ظلّيّ

وبينما يقود وولفيش، تلبس الشاشةُ توهّجاً أزرق حول حوافّها الأربع مع تنبيهٍ شفّافٍ صغير في وسطها — «وولفيش يلتقط شاشتك»، بلغة تطبيقك — غير مرئيٍّ في لقطاته هو. ومنذ الإصدار 1.0.298 يسافران مع مؤشّرٍ ظلّيّ: سهمٌ ينزلق إلى النقطة بعينها قبل كلّ إجراء، وينبض عند الضغط، ويركن هناك بعلامةٍ صغيرة تسمّي الهدف. وهو رسمٌ على طبقة المؤشّر، فـلا يمسّ مؤشّرك الحقيقيّ أبداً ولا يظهر في لقطات وولفيش. وإن أسقط النظامُ نافذةَ المؤشّر — شاشةٌ فُصلت، أو إسبات — أعاده الإجراءُ التالي إلى شاشةٍ موجودة، فـ«مشتعل» تعني مشتعلاً على مرأى دائماً.ووولفيش نفسه يشعل المؤشّر قبل أوّل نظرةٍ إلى شاشتك ويطفئه فعلاً أخيراً، فالإشعالُ يعني مراقَبةً والإطفاءُ يعني لا مراقَبة.الأدوات (31):وcomputer_wait_for تحلّ محلّ المهل المخمَّنة — انتظر حتى تستقرّ الشاشة، أو حتى تظهر نافذةٌ بعنوانٍ معيّن، أو حتى يظهر عنصرٌ أو يختفي. وcomputer_window_screenshot تلتقط نافذةً حتى وهي مغطّاة. وcomputer_batch تشغّل تسلسلاً أنت واثقٌ منه في استدعاءٍ واحد وتتوقّف عند أوّل إخفاق.

الأذونات، تُطلَب مقدّماً

تقول computer_check_access لوولفيش — ولك — ما الذي يسمح به هذا الجهاز بالضبط قبل أن تبدأ الجلسة: الوصوليّةُ وتسجيلُ الشاشة على macOS مع لوحة الإعدادات التي تُفتَح، ونوعُ الجلسة والمؤلِّفُ على لينكس، وحدودُ الترقية على ويندوز، وهل حُمِّل مشغّل الخلفية. وإشعالُ المؤشّر يجري الفحصَ نفسه، فـيُسمّى الإذنُ الناقص عند الخطوة الأولى ومعه علاجُه، لا يُكتشَف خطأً مبهماً في منتصف الطريق. وصفحةُ إعدادات Computer Use تعرض زرّ فتح إعدادات النظام بجوار أيّ إذنٍ ناقص، ولا شيء بجوار الحاضر.
ويندوز يحتاج ثلاث قواعد خاصّة به، تعلّمتها كلُّها تشغيلةُ تحقّقٍ حيّة: نوافذ الصدفة المخفيّة بـDWM التي يبقيها ويندوز (قائمة ابدأ، والبحث، وإعداداتٌ مغلقة) لا تُعامَل أهدافاً أبداً؛ والنقرات اليمنى والوسطى، والكتابة في المتصفّحات وتطبيقات Electron، تأخذ درجةَ المقدّمة الوجيزة، لأنّ تلك التطبيقات تُسقط الإدخال المُرسَل؛ وكلّما اضطرّ وولفيش إلى استعارة المؤشّر أعاده إلى حيث كان. والنافذةُ العاملة بصلاحيّات المدير لا تستطيع تلقّي إدخالٍ من وولفيش غير المُرقّى (UIPI) — ويُبلَّغ عن ذلك حدّاً لا مانعاً.

جودة الالتقاط وكلفته

منذ الإصدار 1.0.280 صار الوكيل يختار دقّة كلّ لقطة وصيغتها، لقطةً لقطة، بدل إعدادين تضبطهما مرّةً وتعيش معهما. فالبحث العاديّ عن زرّ يبقى صغيراً سريعاً؛ أمّا قراءة صفحة شيفرة، أو الحكم على التباعد واللون، أو تسليمك لقطةً تحتفظ بها فترتفع إلى 2560 بكسلاً وPNG بلا فقدان. واطلب لقطةً أحدّ في أثناء المحادثة فيلتقطها ببساطة. ومن ثَمّ اختفى الصفّان من سطح المكتب والطرفية والهاتف. (ويحتفظ امتداد المتصفّح بإعدادات لقطاته الخاصة.) واللقطاتُ الأقدم تُحال عن سياق النموذج كلّما وصلت أحدثُ منها، فتبقى الجلساتُ الطويلة مستندةً إلى الشاشة الحاليّة — وميسورةً.يجب تفعيله في الإعدادات ← الخدمات ← Computer Use — وهو يحتاج إلى دماغ قادر على الرؤية: فإن عجز النموذج الفعّال عن قبول الصور جرّدت بيئةُ التشغيل اللقطاتِ وقالت الأدواتُ للنموذج أن يتوقّف ويطلب منك تبديل النموذج، واللوحةُ تقول ذلك بصراحة بدل أن تدع نموذجاً أعمى ينقر بالتخيّل. ومنذ الإصدار 1.0.287 صار deepseek-flash مؤهَّلاً، فلم يعد DeepSeek مزوّداً يلزم تركه لقيادة الشاشة.وبطاقاتُ الموافقة على إجراءات الشاشة تسمّي التطبيق والنافذة التي يذهب إليها الإجراء، و**«اسمح في هذه المحادثة» يسمح لذلك التطبيق** لا لاسم أداةٍ واحدة.

الجلسات والرفض (الإصدار 1.0.299)

كانت جلسةُ مشغّل الشاشة تنتهي بعد خمس دقائق من الخمول، وكان استدعاءُ واجهةٍ صامتٌ واحد يكفي لتجاوز ذلك الحدّ — وبعده يرفض كلُّ إجراء شاشةٍ بقيّةَ الدور. وصارت الجلسة تبقى حيّةً ما دام المؤشّر قائماً، وإن انقضت أعاد الإجراءُ التالي الاتّصالَ وكرّر نفسَه دون أن ترى إخفاقاً.وحالاتُ الرفض التي لا تتغيّر بمحاولةٍ أخرى — نقطةٌ خارج الصورة الحاليّة، أو اسمُ مفتاحٍ لا يعرفه المشغّل، أو إجراءٌ قبل إشعال المؤشّر — صارت تعود فوراً ومعها العلاج، بدل إحراق ثلاث محاولاتٍ متطابقة. وأسماءُ المفاتيح مثل period وcomma وslash مفهومةٌ الآن، والنصُّ الطويل يُكتَب في استدعاءٍ واحد مع الإبلاغ بعدد المحارف، فالفقرةُ التي وصلت ناقصةً ظاهرةٌ لا صامتة.
النوع: إضافة · أساسيّةالمحفزات: open app, quit app, restart, shutdown, sleep, lock, log out, reveal, open folderالتحكّم بالجهاز نفسه وبالتطبيقات التي عليه.الأدوات:
  • app_open — تشغيل تطبيق
  • app_quit — إنهاء تطبيقٍ يعمل
  • app_list — سرد التطبيقات العاملة
  • open_path — فتح ملفّ أو مجلّد بالمعالج الافتراضيّ في النظام
  • system_power — إعادة التشغيل، أو الإطفاء، أو الإسبات، أو القفل، أو الخروج من الحساب
لا يُنفَّذ restart وshutdown وlogout بالاستدعاء نفسه أبدًا. فمنذ الإصدار 1.0.294 تُسلَّح على عدٍّ تنازليّ عند نهاية الدور — ينهي الوكيل جوابه، وتُحفَظ المحادثة، وتعدّ بطاقةٌ فيها زرّ إحباط تنازليًّا في المحادثة قبل أن يُنفَّذ الأمر. وقبل ذلك كان الوكيل يسلّم المهمّة إلى مؤقّتٍ منفصلٍ خفيّ لا سبيل إلى إلغائه على ماك أو لينكس، وكان المؤقّت الذي يعجز عن البدء يُبلَّغ عنه إليك نجاحًا. أمّا sleep وlock فلا يقطعان ردًّا، فما زالا يُنفَّذان مباشرةً.
النوع: إضافةالمحفزات: simulator, emulator, iOS, Android, device, app build, tap, screenوصلت في الإصدار 1.0.288 وأُعيد بناؤها في الإصدار 1.0.299 حول مفرداتٍ واحدة للمنصّتين — 37 أداة mobile_، وiOS على macOS وأندرويد في كلّ مكان. فصار سؤال «هل تبدو الشاشة الجديدة صحيحة؟» سؤالاً يجيب عنه الوكيل بتشغيل التطبيق والنظر إليه ولمسه، لا بقراءة الشيفرة والتخمين.
أسماءُ الأدوات sim_ وadb_ التي شحنها الإصدار 1.0.288 ذهبت. فمفرداتُ mobile_ واحدةٌ تغطّي المنصّتين الآن، والخلفيّةُ تُختار من الجهاز الذي أنت عليه.

اللمساتُ تذهب إلى مرجعٍ لا إلى تخمين

لا تذهب اللمسة أبداً إلى إحداثيٍّ مقروءٍ من لقطةٍ قديمة. فوولفيش يقرأ شجرة الوصوليّة للتطبيق — mobile_snapshot تعيد كلّ زرٍّ وحقلٍ وخليّة بمرجعٍ خاصّ بها — وmobile_tap تلمس المرجع.وكلُّ لمسةٍ تعيد برهاناً: رقعةً مقرَّبة للموضع بعينه وعليها خطّا تصويب، وحكماً موضوعيّاً على ما إذا كانت الشاشة قد تغيّرت فعلاً. و**«لم تتغيّر» تعني أعِد التصويب من نظرةٍ جديدة، لا اضغط ثانية.**والكتابةُ تدخل ضغطاتِ مفاتيح للنصّ الصريح، وعبر الحافظة للعربية وسائر الكتابات والرموز التعبيرية، فيصل ما طلبتَه كما طلبتَه.

ترى الجهاز وهو يُقاد

محاكٍ يتحرّك وحده أمرٌ مقلق إن لم تعرف السبب. فكلّما كان وولفيش ينظر إلى جهازٍ أو يلمسه، يقوم إطارٌ أزرق حول نافذة ذلك الجهاز بقرصٍ يقرأ «وولفيش يقود iPhone 16 Pro»، وتظهر تموّجةٌ حيث تحطّ كلّ لمسة — وخطٌّ مرسومٌ عبر الشاشة للسحب. ويتبع النافذةَ إن سحبتها أو غيّرت حجمها، والنقراتُ تنفذ من خلاله فلا يعترض طريقك أبداً، والأدوات التي ترى الجهاز أو تلمسه ترفض العمل حتى يكون قائماً (أمّا أدوات البناء ودورة الحياة والسجلّ فلا تحتاجه). وينزل فعلاً أخيراً في الدور، وإن انتهى دورٌ وهو ما يزال مشتعلاً — منتهياً أو مستسلماً أو مخفقاً — أنزله التطبيق بنفسه، فالإطارُ على شاشتك يعني دائماً ما يقوله.الأدوات (37):وإلى جانب القيادة: اللقطات والتكبير بالدقّة الأصليّة، وتسجيل الفيديو، وسجلّ الجهاز للانهيارات ومخرجات الطباعة، ومحاكاةُ المواقع والإشعارات الدافعة ومنح الأذونات والوضع الداكن وشريط الحالة والدوران.وقراءةُ لقطة جهازٍ تحتاج إلى دماغ قادر على الرؤية، مثل computer-use تماماً. ويلزم iOS برنامج Xcode وأدوات سطر أوامره؛ ويلزم أندرويد أدواتُ منصّة SDK. وmobile_doctor تبلّغ بما ينقص.
النوع: إضافة · macOS فقطالمحفزات: xcode, xcodebuild, scheme, swift, ios build, simulator runجديدة في الإصدار 1.0.299. وجِّه وولفيش إلى مجلّدٍ فيجد ما فيه — مساحات عمل Xcode ومشاريعه، وحزم Swift، وFlutter، وExpo، وReact Native، وGradle — وكيف يُشغَّل كلٌّ منها.الأدوات:
  • xcode_discover — إيجاد المشاريع ومساحات العمل والأُطر في مجلّد، وكيف يُشغَّل كلٌّ منها
  • xcode_schemes — سرد مخطّطات المشروع
  • xcode_bundle_id — استخراج معرّف حزمة مخطّط
  • xcode_defaults — ضبطُ المخطّط والمشروع والتهيئة والجهاز مرّةً واحدة للمحادثة، فتُترَك خارج كلّ استدعاءٍ بعدها
  • xcode_build — البناء، ويعيد مسار حزمة .app التي تأخذها mobile_install
  • xcode_test — تشغيل اختبارات المشروع
  • xcode_run — البناء والتثبيت على المحاكي والتشغيل مع انسياب السجلّات، في استدعاءٍ واحد
وحين يخفق البناء تعود الأخطاء بالملفّ والسطر — لا بألف سطرٍ من مخرجات xcodebuild. وأيّاً كان الإطار، تُغلَق الحلقةُ بالطريقة نفسها: شغّل التطبيق، ثمّ اقرأه والمسه على الجهاز بدل التخمين من الشيفرة.

التفاعل

النوع: إضافةالمحفزات: ask the user, ask me, which option, let me choose, give me options, clarify, confirm with me, multiple choice, quiz meيتيح لوولفيش أن يعيد القرار إليك بخيارات ملموسة بدل التخمين. يوقف الدور مؤقتًا، ويعرض بطاقة سؤال تفاعلية، ثم يستأنف فور أن تجيب.الأدوات:
  • ask_user — يطرح سؤالًا أو أكثر من أسئلة الاختيار من متعدد وينتظر الإجابات. كل سؤال يحمل خيارَين إلى خمسة خيارات مرقّمة بأوصاف مختصرة، و(ما لم يُعطَّل) صندوق نصّ حرّ لتعليماتك الخاصة. يعيد كل الإجابات دفعة واحدة.
القرارات المترابطة تصل بطاقةً واحدة لا سلسلة: في تطبيق سطح المكتب تعرض بطاقة الأسئلة المتعددة أسئلتها رقاقاتِ تبويب — تقلّب بينها وتجيب عن الكل فيستأنف الدور بكل الإجابات. وعلى Telegram وWhatsApp يمشي بك الطلب نفسه على الأسئلة رسالةً رسالةً بترتيبها، يجمع كل ردٍّ مرقّم (أو نصّك الخاص) قبل أن يمضي العمل. والاختبارات القصيرة تجري عبر هذه البطاقة أيضًا — كل الأسئلة تُطرح أولًا، ثم تصحيح وشرح بعد إجابتك، لا اختبار ملصوق نصًّا وأجوبته ظاهرة تحته. وإن أُوقف التشغيل دون إجابة، يلجأ وولفيش إلى خيار افتراضي معقول بدل إعادة السؤال في حلقة.

الذاكرة والوعي الذاتي

النوع: إضافةالمحفزات: status, health, performance, how are you, what do you know, recall, remember when, search memory, list files, uptime, stats (وغيرها الكثير)نافذة وولفيش على ذاكرته وحالته. أدوات الاسترجاع تركب فهرس القشرة (cortex) — فهرس نصي كامل واحد فوق كل ما رآه يومًا: كل رسالة واستدعاء أداة في كل محادثة سابقة، والحلقات اليومية، والمعرفة طويلة الأمد، والموجزات الأسبوعية، وتشغيلات المهام، وملاحظات نتائج الأدوات، وسجلات الاستخدام والتكلفة، وسجلات الأحداث، وسجلات التطبيق، والملفات المولَّدة. محمَّلة دائمًا.أدوات الاسترجاع:
  • memory_search — بحث نصي كامل مرتَّب عبر جميع مصادر الذاكرة، قابل للترشيح بالمصدر والمدى الزمني. يعيد مقتطفات مع مراجع (refs) للمتابعة.
  • memory_get — يجلب المحتوى المخزَّن الكامل خلف مرجع؛ ومراجع file: تعيد الملف الفعلي (محصورة في مساحة العمل)
  • conversation_list — يعدّد المحادثات السابقة: المعرّف والعنوان والقناة والتواريخ وعدد الرسائل — مع ترتيب اختياري باستعلام محتوى
  • conversation_read — يقرأ محادثة سابقة بعينها مع تقسيم الصفحات، شاملًا استدعاءات الأدوات ونتائجها. ويستعيد أيضًا أدوار المحادثة الحالية التي لُخِّصت خارج السياق.
  • memory_save — يحفظ حقيقة واحدة مكتفية بذاتها حفظًا دائمًا في المعرفة طويلة الأمد (مع إزالة التكرار)، مصنَّفةً كمشاريع أو أشخاص أو تفضيلات أو تقنية أو قرارات
  • usage_report — إنفاق وولفيش نفسه على نماذج اللغة: الطلبات والرموز والتكلفة، إجمالًا ولكل نموذج، لفترة تختارها
  • wolffish_recall — استرجاع بالكلمات المفتاحية والتواريخ، أُبقي عليه اسمًا بديلًا ثابتًا ويُخدَم الآن من الفهرس
أدوات الحالة:
  • wolffish_status — وقت التشغيل، المزود النشط، القدرات المحمَّلة، وصحة النظام
  • channel_status — ما إذا كانت كل قناة مراسلة (Telegram، WhatsApp، داخل التطبيق) متصلة، والخطوات الدقيقة لإعادة وصل ما انقطع منها
  • wolffish_performance — معدلات نجاح المهام، الأدوات الأكثر استخدامًا، معدلات الأخطاء
  • wolffish_memory — مواضيع المحادثات الأخيرة ومجالات المعرفة في لمحة
  • wolffish_list_files — شجرة ملفات منظَّمة لمساحة العمل (ومساحة العمل وحدها)
للقراءة فقط باستثناء memory_save. يستخدم وولفيش هذه الأدوات دون أن يُطلب منه: الإشارة المحددة («خطة الرحلة»، «ذلك الملف») تُطلق بحثًا قبل الإجابة، ويجرّب بحثين بصياغتين مختلفتين قبل أن يدّعي يومًا أنه لا يتذكر — فإخفاق البحث لا يُعامل أبدًا دليلًا على أن شيئًا لم يحدث. ويتحقّق أيضًا من channel_status قبل أن يراسلك خارج السياق — فـ Telegram وWhatsApp قنوات متّصلة يُوصَل إليها عبر أدواتها، لا تطبيقات سطح مكتب تُشغَّل.

المرح

النوع: إضافةالمحفزات: meme, funny, gif, laugh, humor, joke, celebrate, lolإنشاء ميمز بتعليقات من قوالب شائعة أو البحث عن صور GIF للردود. لا توجد حدود على النتائج — اطلب العدد الذي تحتاجه من GIFs.الأدوات:
  • meme_generate — إنشاء ميم من قالب (drake, fry, buzz, distracted-boyfriend, this-is-fine, إلخ)
  • meme_templates — عرض القوالب المتاحة
  • gif_search — البحث عن صور GIF للردود
  • gif_trending — الحصول على الصور الرائجة
  • add_to_chat — إدراج الميم/GIF في المحادثة
يستخدم memegen (بدون إعداد) أو imgflip (مع بيانات اعتماد) كخلفية. لا يصل الميم إلى المحادثة إلا عند استدعاء add_to_chat — التوليد وحده لا يسلّمه.

تنفيذ المهام (Motor Runtime)

تنفّذ القشرة الحركية جميع استدعاءات الأدوات بالإعدادات الافتراضية التالية:
  • مخزن المخرجات: 100 كيلوبايت لكل نتيجة أداة — يرى نموذج اللغة مخرجات كبيرة دون اقتطاع. ومخرجات الشل استثناءٌ منذ الإصدار 1.0.288: تحتفظ بـآخر 2000 سطر أو 50 كيلوبايت لا بأوّلها، لأنّ الإخفاق يُبلَّغ عنه في نهاية السجلّ، ويُكتَب النصّ الكامل في ملفٍّ يسمّيه الناتج.
  • إعادة المحاولة: حتى 10 محاولات للأخطاء القابلة لإعادة المحاولة (شبكة، انتهاء مهلة). الأخطاء غير القابلة لإعادة المحاولة (صلاحيات، تحقق، غير موجود) تنسحب فورًا. التراجع التصاعدي يصل إلى 60 ثانية بين المحاولات.
  • لا توجد مهلة عامة: الأدوات تعمل حتى تكتمل أو يوقفها المستخدم

تخصيص القدرات

القدرات المضمَّنة تُدار وتُحدَّث بواسطة وولفيش — لا تعدّلها مباشرة، فتغييراتك ستُكتب فوقها عند التحديث التالي. بدلاً من ذلك:
  • عطّل قدرة مضمَّنة من الإعدادات إن لم تحتجها (أما القدرات الأساسية التي لا غنى عنها فمحميّة — انظر أدناه)
  • انسخها — انسخ المجلد باسم جديد، ثم عدّل النسخة كما تشاء
  • أنشئ قدرتك الخاصة من الصفر باتباع نفس البنية
تسري التغييرات على القدرات المخصصة على الرسالة التالية — لا حاجة لإعادة التشغيل.
حفنةٌ من القدرات المضمَّنة ركائز لا غنى عنها ولا يمكن إطفاؤها: محرّك سير العمل، وأسرارك، وقدرة skills، والمشاريع، والأتمتة، والإجراءات، وintrospect، وknowledge، وقائمة المهامّ todo، وآلية التسليح countdown، وoperating-manual، وأدلّة pdf-design وdataviz وweb-design، وأدوات تسليم الملفات المشتركة التي يتّكئ عليها سائرها. في الإعدادات ← القدرات تحمل هذه شارة «أساسي»، وتستقرّ في أسفل القائمة، وتُظهر مؤشّر «مُفعّل دائماً» مقفلاً حيث كان مفتاحها — فلا تقدر نقرةٌ طائشة أن تسحب الأرض من تحت ميزة تعتمد عليها. وكلّ ما استوردته بنفسك يبقى قابلاً للتبديل بالكامل.
القدرات المخصصة لا تُحفظ احتياطيًا تلقائيًا. إذا حذفت قدرة أنشأتها أنت، فستختفي — ليس لدى وولفيش نسخة منها. استخدم git أو احتفظ بنسخة احتياطية يدوية من مجلد brain/cerebellum/. القدرات المضمَّنة تُستعاد تلقائيًا دائمًا عند التشغيل.
ابدأ بقراءة SKILL.md لأي قدرة مضمَّنة لفهم النمط. ثم أنشئ قدرتك الخاصة باتباع نفس البنية. راجع إنشاء القدرات لدليل خطوة بخطوة.