dsh-codex-style-computer-use 2.0.0 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ar.md +234 -0
- package/README.de.md +234 -0
- package/README.es.md +264 -0
- package/README.fa.md +234 -0
- package/README.fr.md +243 -0
- package/README.md +45 -8
- package/README.pt.md +234 -0
- package/README.ru.md +259 -0
- package/README.zh.md +45 -8
- package/client.js +130 -0
- package/icon.svg +20 -4
- package/lib/bin/attention-worker.exe +0 -0
- package/lib/bin/attention-worker.exe.json +1 -1
- package/lib/core/bin/dsh-computer-use-worker.exe +0 -0
- package/lib/core/bin/dsh-computer-use-worker.exe.json +2 -2
- package/lib/core/index.js +51 -3
- package/lib/core/worker.cs +467 -18
- package/lib/host-debug.js +88 -0
- package/lib/image-output.js +28 -6
- package/lib/index.js +104 -0
- package/lib/launch.js +67 -0
- package/lib/policy.js +22 -2
- package/lib/tools.js +74 -8
- package/package.json +101 -91
- package/scripts/check-behavior.mjs +1 -1
- package/scripts/verify-package.mjs +9 -0
- package/skills/computer-use/SKILL.md +59 -50
package/README.ar.md
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# استخدام الحاسوب على نمط Codex
|
|
2
|
+
|
|
3
|
+
**الطريقة الأدق لقيادة Windows من DeepSeek Harness — والأقل كلفة لكل مهمة.**
|
|
4
|
+
|
|
5
|
+
صف الهدف. يقرأ وكيلُك هويات عناصر التحكم الدقيقة، وينفّذ عبر عناصر التحكم نفسها، ويتحقق من النتيجة — ثم يُنجز تسلسلًا معروفًا في جولة نموذج واحدة بدلًا من عشر جولات.
|
|
6
|
+
|
|
7
|
+
[English](README.md) | [中文](README.zh.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Português](README.pt.md) | **العربية** | [Русский](README.ru.md) | [فارسی](README.fa.md) · [التثبيت](#install-and-update-in-dsh-market) · [سجل التغييرات](CHANGELOG.md) · [تغييرات 2.0.0](docs/RELEASE-2.0.0.md)
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
## لماذا هو الأدق
|
|
12
|
+
|
|
13
|
+
- **هوية محدَّدة، لا تخمين.** يكشف UI Automation شجرة عناصر التحكم الحقيقية بمعرّفات `AutomationId` دقيقة، ويمكن للأفعال أن تقود عنصر التحكم عبر أنماط UI Automation الخاصة به بدلًا من النقر على إحداثيات.
|
|
14
|
+
- **العلامات تُفحَص ولا يُوثَق بها.** افتراضيًا تُتحقَّق العلامة المرقَّمة مقابل هوية النافذة والبكسلات المعاينة قبل إرسال أي إدخال، فتُرفَض العلامة القديمة بدلًا من النقر في الموضع الخطأ. وعندما يظل جار متحرك يُبطل بصمة البكسلات، يثبّت `uiaOnly` الهوية على مقبض النافذة والهندسة، مع بقاء فحص الحجب عند الإرسال ساريًا.
|
|
15
|
+
- **الاستعلامات تبقى محدودة.** تكون استعلامات UIA افتراضيًا بعمق 6 و120 عقدة وميزانية مرنة تبلغ 1200 مللي ثانية؛ والاستعلام الأعمق من 6 أو الأكبر من 300 عقدة يتطلب `anchor` مقيسًا، فلا يمكن للاستعلام أن يمسح المنطقة الخطأ بهدوء.
|
|
16
|
+
- **حين تُخفيه التطبيقات، اقرأه.** يُرجع `computer_ocr` الأسطر ومربّعات كل كلمة بالبكسلات المطلقة للشاشة، فيمكن تحديد مواضع التطبيقات الخالية من UIA بالاسم.
|
|
17
|
+
|
|
18
|
+
## لماذا هو أقل كلفة
|
|
19
|
+
|
|
20
|
+
- **جولة واحدة لتسلسل معروف.** يُشغّل استدعاء واحد لـ `computer_batch` قائمة من الأفعال تتابعيًا، ويتوقف عند أول إخفاق، فيكلّف جولة نموذج واحدة بدلًا من جولة لكل فعل.
|
|
21
|
+
- **لا يعود إلا الفرق.** مرّر معرّف الملاحظة السابقة بوصفه `since` فتتلقى الإضافات والتغييرات والإزالات والترتيب — لا الشجرة كاملة مرة أخرى.
|
|
22
|
+
- **إيصالات مختصرة افتراضيًا في 2.0.0.** لا يضيف نص ما بعد الفعل عادةً أكثر من 6 KiB إلى إيصال الفعل؛ ويبقى `feedback: full` متاحًا حين تكون التفاصيل أهم.
|
|
23
|
+
- **الأدلة تبقى خارج المحادثة.** يمكن أن تقيم أدلة النقاط الكاملة في ذاكرة تخزين مؤقت محلية محدودة (4 MiB من الذاكرة و32 MiB على القرص و64 سجلًا وانتهاء صلاحية بعد 24 ساعة) وتُسحب عند الطلب.
|
|
24
|
+
- **العمل المحلي يبقى محليًا.** تُنفَّذ أتمتة واجهة المستخدم وقراءة نص الشاشة وفحوص البكسلات في العامل الأصلي المُهيَّأ مسبقًا — دون فاتورة رؤية إضافية لكل خطوة.
|
|
25
|
+
|
|
26
|
+
## مصمَّم لسطح مكتب ما زلت تستخدمه
|
|
27
|
+
|
|
28
|
+
- **إنه ينتظرك.** إشعار مدته ثانية واحدة قبل الإدخال (0.1 ثانية داخل نافذة متجددة مدتها 3 دقائق) يعيد سطح المكتب إليك فورًا؛ وبعد أن تنتهي، يعيد الوكيل الملاحظة ويكمل المهمة الأصلية.
|
|
29
|
+
- **الفرملة تصل إلى النموذج.** يوقف `Ctrl+Esc` مؤقتًا، ويستأنف `Ctrl+Alt+R`، وينهي `Ctrl+Alt+Q`، ويُدفع أمر التوقف إلى الجلسة الجارية. تبقى الموافقات مفعّلة افتراضيًا، وتُرفض حقول كلمات المرور افتراضيًا.
|
|
30
|
+
- **يبلّغ عمّا لا يستطيع فعله.** يُكتشف سطح مكتب Windows الآمن (مطالبة UAC أو شاشة القفل) ويُبلَّغ عنه ثم يُستأنف بعده — لا تُعاد المحاولة على نحو أعمى.
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
تُبيّن الرسوم أعلاه نموذج التفاعل الذي طرحه الإصدار 1.3.0؛ أما مؤشر الطائرة الورقية في 2.0.0 والاستعلامات المحدودة والإيصالات المختصرة فقد وُصفت أعلاه. ويعتمد استهلاك الرموز الفعلي على المهمة والنموذج واستراتيجية الملاحظة. تبقى الموافقات مفعّلة افتراضيًا؛ وتبقى الأولوية للإيقاف المؤقت والإلغاء والإنهاء الصريح.
|
|
37
|
+
|
|
38
|
+
**جاهز للتثبيت.** 19 أداة لسطح المكتب، مع مساعدات أصلية مُضمَّنة. لا حاجة إلى SDK أو إلى ترجمة وقت التثبيت. يتطلب Windows وNode.js إصدار 22 أو أحدث و.NET Framework 4.x المضمَّن مع Windows. إنه إضافة مجتمعية مستقلة؛ وCodex يصف نمط التفاعل.
|
|
39
|
+
|
|
40
|
+
## الجديد في 2.0.0
|
|
41
|
+
|
|
42
|
+
- **إيصالات مختصرة افتراضيًا** — لا يضيف نص ما بعد الفعل عادةً أكثر من 6 KiB إلى إيصال الفعل؛ و`feedback: full` و`feedback: none` بديلان صريحان.
|
|
43
|
+
- **استعلامات UIA محدودة ومرتكزة** — العمق 6 و120 عقدة وميزانية مرنة 1200 مللي ثانية افتراضيًا؛ والاستعلامات الأعمق من 6 أو الأكبر من 300 عقدة تحتاج إلى `anchor` مقيس.
|
|
44
|
+
- **الأدلة عند الطلب** — 4 MiB من الذاكرة + 32 MiB على القرص، و64 سجلًا، وانتهاء صلاحية بعد 24 ساعة؛ وعند تعذّر القرص يُرجَع إلى ذاكرة محدودة.
|
|
45
|
+
- **إشعار تحضيري تكيّفي** — ثانية واحدة في البداية، و0.1 ثانية داخل نافذة متجددة مدتها 3 دقائق؛ وتعلّم الطائرة الورقية المائلة موضع نقر الوكيل.
|
|
46
|
+
- **مسار إدخال مُحصَّن** — تركيبات محمية لإدارة النوافذ، وضغط خلفي على العامل وتعافٍ منه، وفحوص للأهداف القديمة، وتنظيف عند الإلغاء.
|
|
47
|
+
|
|
48
|
+
<details>
|
|
49
|
+
<summary>الإصدار الحالي والتوافق</summary>
|
|
50
|
+
|
|
51
|
+
**2.0.0** هو الإصدار الرئيسي الجديد، ويُوزَّع مبدئيًا على وسم `next` في npm أثناء سريان بوابة الإصدار البالغة 24 ساعة. انظر [تغييرات 2.0.0 والترحيل](docs/RELEASE-2.0.0.md). تحقّق من وسوم السجل لمعرفة توفّر الإصدار المستقر الحالي.
|
|
52
|
+
|
|
53
|
+
يقرأ الإصدار 1.3.1 النص من الشاشة بالاسم، ويلاحظ سطح مكتب Windows الآمن ويستأنف من تلقاء نفسه، ويُبقي كل لون على المسار الحدي نفسه المشتق من DPI مع حد أدنى مرئي للتنفّس. ويحرّر الإصدار 1.3.0 التحكم في سطح المكتب عند انتهاء العمل بينما تستمر المحادثة.
|
|
54
|
+
|
|
55
|
+
إصلاحات سابقة: [إسناد الموافقة 1.2.3](docs/RELEASE-1.2.3.md) · [الانتباه الأصلي 1.2.1](docs/RELEASE-1.2.1.md) · [رقعة المضيف المستقلة](docs/RELEASE-1.2.2.md).
|
|
56
|
+
|
|
57
|
+
</details>
|
|
58
|
+
|
|
59
|
+
## ما الذي يفعله
|
|
60
|
+
|
|
61
|
+
يستخدم الإصدار 2.0.0 أيضًا مؤشر طائرة ورقية صغيرة زرقاء أثناء تشغيل الذكاء الاصطناعي وتثبيت المشهد. يعلّم طرفه المائل موضع النقر، مع رموز صغيرة للنص/تغيير الحجم داخل الطائرة. وتعني الطائرة المتنفِّسة أنه ينبغي أن تبقى الصفحة وموضع المؤشر في مكانهما؛ ويعيد الوضع الحر مؤشر التطبيق الطبيعي. ويُحتفَظ بمظهر المؤشر الخاص بـ Windows لدى المستخدم.
|
|
62
|
+
|
|
63
|
+
ويحدّ الإصدار 2.0.0 من اجتياز UIA ويستخدم افتراضيًا نصًا مختصرًا بعد الفعل. تبقى تغذية الصور الراجعة الحالية متاحة؛ ويتحكم `feedback: compact|full|none` في مستوى التفصيل، ويسمّي `verificationRegion: "x,y,w,h"` عند النقر منطقة الأثر المتوقعة باستقلال عن نقطة الإدخال. ولا يضيف النص المختصر عادةً أكثر من 6 KiB إلى إيصال الفعل الأصلي. ويمكن الاحتفاظ بأدلة النقاط الكاملة في ذاكرة تخزين مؤقت محلية محدودة تنتهي صلاحيتها، واسترجاعها عند الطلب. وعند تعذّر القرص يُرجَع إلى ذاكرة محدودة؛ وإذا لم يكن ممكنًا الاحتفاظ بأي لقطة قابلة للاسترجاع، تُرجَع الأدلة الحالية كاملةً في الرد نفسه، خارج تلك الميزانية المختصرة، دون ملاحظة أو إدخال إضافي.
|
|
64
|
+
|
|
65
|
+
تتطلب استعلامات UIA المصفّاة `hwnd`. والقيم الافتراضية هي العمق 6 و120 عقدة وميزانية مرنة 1200 مللي ثانية. والاستعلام الأعمق من 6 أو الأكبر من 300 عقدة يتطلب `anchor:"x,y"` مقيسًا في تلك النافذة؛ ولا يُعفي `id` الدقيق من هذه القاعدة. وقد يتجاوز استدعاء المزوّد الميزانية المرنة، ولا يمكن للنتائج الجزئية أن تثبت الغياب أو التفرّد. وبعد أي اختصار لإدارة النوافذ، افحص `computer_state {windows:true}`، ونشّط النافذة المقصودة بنجاح، ثم لاحظها قبل المزيد من إدخال لوحة المفاتيح.
|
|
66
|
+
|
|
67
|
+
- **الملاحظة** — قائمة النوافذ، ولقطات الشاشة (منطقة / JPEG / PNG / مصغَّرة)، وخريطة Set-of-Marks للعناصر القابلة للنقر، وشجرة UI Automation بمعرّفات `AutomationId` دقيقة.
|
|
68
|
+
- **التنفيذ** — النقر والتحريك والسحب والتمرير وتحديد نطاق نصي والكتابة وضغط المفاتيح، وقيادة عناصر التحكم عبر أنماط UI Automation الخاصة بها بدلًا من الإحداثيات العمياء.
|
|
69
|
+
- **التجميع** — يشغّل استدعاء واحد لـ `computer_batch` قائمة أفعال تتابعيًا ويتوقف عند أول إخفاق، فيكلّف تسلسل معروف جولة نموذج واحدة بدلًا من عشر.
|
|
70
|
+
- **السؤال** — يطرح `computer_ask` سؤالًا في بطاقة الدردشة نفسها التي يستخدمها DSH لأجل `ask_user_question`، دون عد تنازلي.
|
|
71
|
+
- **فرملة بشرية تصل إلى النموذج** — يُدفع أمر التوقف إلى الجلسة الجارية، فيعلم الوكيل أنه قُوطِع بدلًا من أن يكتشف ذلك في الجولة التالية.
|
|
72
|
+
|
|
73
|
+
تراقب الأدوات سطح المكتب ولا تجوب مستندات المستخدم. وتدير الإضافة المساعدات الأصلية في `%LOCALAPPDATA%\dsh-computer-use\worker\`، إضافةً إلى سجلات التدقيق ولقطات الشاشة وذاكرة `observation-cache` المحدودة الخاصة بها تحت `$DSH_HOME/data/computer-use/`. ويمسح `computer_ctrl {action:"clear_cache"}` ذاكرة ملاحظات هذا الوكيل؛ ولا يحذف لقطات الشاشة أو المرفقات أو مستندات المستخدم.
|
|
74
|
+
|
|
75
|
+
<a id="install-and-update-in-dsh-market"></a>
|
|
76
|
+
|
|
77
|
+
## التثبيت والتحديث في dsh-market
|
|
78
|
+
|
|
79
|
+
ابحث عن **computer-use** أو **Codex-style** في السوق. وابحث عن المستودع **ltmroberthk915/dsh-computer-use** وحزمة npm **dsh-codex-style-computer-use** (المشرف: **ltmroberthk**)، ثم اضغط **تثبيت**. واستخدم **تحديث** أو **تحديث الكل** لتحديثات القناة المستقرة. المساعدان الأصليان مضمَّنان؛ ولا حاجة إلى PowerShell 7 أو إلى صلاحية بناء.
|
|
80
|
+
|
|
81
|
+
بدلًا من ذلك، أدخل **`dsh-codex-style-computer-use`** في **الإعدادات ← الإضافات ← خيار «إضافة»** للقناة المستقرة الحالية، أو **`dsh-codex-style-computer-use@2.0.0`** للإصدار الموصوف هنا. أدخل مواصفة حزمة npm مباشرةً. وقد يفرض مضيفك فترة انتظار على الإصدارات الحديثة؛ فاتبع ما يشير إليه. ويمكن لحزمة مضافة حديثًا أن تُحمَّل مباشرةً على المضيفات المدعومة؛ فتحقّق من ظهور أدواتها ومهارتها. وأعد التشغيل من علبة النظام (tray) عند استبدال إصدار محمَّل، أو عندما يبقى العميل قديمًا، أو عندما يبلّغ DSH بحالة **restart-required**.
|
|
82
|
+
|
|
83
|
+
### إصدارات مضى عليها أقل من 24 ساعة
|
|
84
|
+
|
|
85
|
+
يسجّل إعداد pnpm 11.7.0 الافتراضي غير الصارم استثناءً لإصدار واحد تلقائيًا ويُجري التثبيت. ولا يعني نجاح التثبيت على جهاز ما أن جهازًا آخر يسمح بالإصدارات الحديثة.
|
|
86
|
+
|
|
87
|
+
مع `minimumReleaseAgeStrict: true` (أو سياسة مضيف تُفعّل فحوص عمر الإصدار الصارمة)، ودون استثناء سارٍ، يُرفَض الإصدار الذي يقل عمره عن المدة المهيَّأة قبل تشغيل شيفرة الإضافة. وقد جرى التحقق من أن الاسم المجرد، وتثبيت `@1.2.0` الدقيق، ورابط tarball في npm كلها تفشل بـ `ERR_PNPM_NO_MATURE_MATCHING_VERSION` في ظل تلك السياسة. كما أن ضبط `minimumReleaseAge: 1440` صراحةً يُفعّل السلوك الصارم في pnpm 11.7.0 ما لم يُضبط `minimumReleaseAgeStrict` على false بصورة منفصلة. وإعادة تشغيل DSH أو تثبيت PowerShell أو إعادة المحاولة بالأمر نفسه لا تعالج رفض سياسة صارمة. ولا يقبل جسر سطح المكتب الرسمي أعلام pnpm إضافية.
|
|
88
|
+
|
|
89
|
+
إذا منعت سياسة صارمة التثبيت، فانتظر حتى يبلغ الإصدار العمر المهيَّأ لتثبيته دون تغيير السياسة. نُشر الإصدار 1.2.0 في `2026-10-03T03:50:11.586Z`؛ ويستوفي حدّ الـ24 ساعة بعد **2026-10-04 03:50:12 UTC** (11:50:12 في الصين). وقد يؤخر حدٌّ مخصص أطول أو مرآة سجل متأخرة التوفّر أكثر من ذلك. ولا يحتاج مستخدمو الإعداد الافتراضي غير الصارم إلى الانتظار أو إلى تعديل الإعدادات لهذه الحزمة.
|
|
90
|
+
|
|
91
|
+
إذا اخترت صراحةً التثبيت في وقت أبكر، فادمج استثناء الإصدار الواحد هذا في ملف `pnpm-workspace.yaml` الموجود في الملف الشخصي الهدف، ثم أعد محاولة التثبيت من السوق. حافظ على الإدخالات الأخرى؛ ولا تعطّل سياسة العمر العامة:
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
minimumReleaseAgeExclude:
|
|
95
|
+
- dsh-codex-style-computer-use@1.2.0
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
المسار الافتراضي لسطح المكتب هو `%USERPROFILE%\.dsh\profiles\desktop\pnpm-workspace.yaml`؛ استخدم الدليل الفعلي إذا كان `DSH_HOME` مخصصًا. ويمكنك إزالة هذا الاستثناء الوحيد بعد نضوج الإصدار إذا رغبت.
|
|
99
|
+
|
|
100
|
+
لم تغيّر تصحيحات الوثائق وفحص الناشر السابقة زمن تشغيل 1.2.0 ولم تتطلب إعادة تثبيت. أما إصلاح الانتباه الأصلي في **1.2.1** فيتطلب تحديثًا. وقد تؤدي إعادة إضافة المصدر نفسه إلى خطأ `ambiguous-install` في المضيف على بعض مسارات التثبيت؛ ولن تطبّق إعادة تثبيت 1.2.0 إصلاح 1.2.1.
|
|
101
|
+
|
|
102
|
+
**ترحيل تثبيت أقدم من Git/tarball من هذا المستودع:** أزل إدخال **dsh-computer-use** القديم في السوق، ثم ثبّت **dsh-codex-style-computer-use**. اسم npm غير المُنطَّق `dsh-computer-use` يخص مستودعًا آخر؛ فلا تثبّته كترقية لهذه الإضافة. ولا يستطيع تثبيت Git تغيير هوية تبعيته بمجرد جلب commit جديد. وبعد هذا الترحيل الواحد في الواجهة، استخدم تحديثات السوق العادية. وتبقى أسماء الأدوات الحالية `computer_*` ونطاق إعدادات `computer-use` محفوظة.
|
|
103
|
+
|
|
104
|
+
**حافظ أيضًا على إعداداتك المحفوظة:** انسخ ملف `cordis.patch.yml` الخاص بالملف الشخصي احتياطيًا، ثم غيّر فقط `name: dsh-computer-use` في تجاوز يحمل `id: computer-use` إلى `name: dsh-codex-style-computer-use`. واحتفظ بحقلي `config` و`disabled` كاملين. ولا يكفي الاحتفاظ بنطاق الإعدادات وحده: فعدم تطابق الاسم يجعل DSH يتخطى حتى تجاوزات `read-only` و`dryRun` والحالة المعطّلة. لا تستبدل إضافات أخرى ولا رقعة منزل مشتركة على نحو عام. وسكربت `scripts/migrate-profile.mjs` في المستودع يعاين افتراضيًا؛ و`--apply` ينشئ نسخة احتياطية ويستبدل الملف استبدالًا ذريًا، ويرفض التعديلات المتزامنة.
|
|
105
|
+
|
|
106
|
+
بدلًا من ذلك، نزّل [أداة ترحيل الإعدادات](https://github.com/ltmroberthk915/dsh-computer-use/releases/download/v1.2.0/computer-use-profile-migration.zip)، وفُكّ ضغطها وانقر نقرًا مزدوجًا على `migrate-profile.cmd`. فهي تحدد موضع تطبيق Desktop الرسمي المثبَّت، وتستخدم Windows PowerShell 5.1 مع Node المضمَّن في DSH لإصلاح ملف سطح المكتب الشخصي الافتراضي. وتتوقف إذا كانت الحزمة الجديدة غائبة أو ظلت الحزمة القديمة مختارة. وهي لا تغيّر سياسة عمر الإصدار. ولملف شخصي آخر، شغّل `migrate-profile.ps1 -ProfileDirectory <absolute-directory>` للمعاينة، ثم أضف `-Apply` عند الجاهزية.
|
|
107
|
+
|
|
108
|
+
يتضمن إصدار GitHub أيضًا `dsh-computer-use.tgz` للتثبيت دون اتصال أو يدويًا؛ والتثبيت من السجل هو الافتراضي لتحديثات السوق.
|
|
109
|
+
|
|
110
|
+
مستخدمو واجهة سطر الأوامر (الملف الشخصي web):
|
|
111
|
+
|
|
112
|
+
```sh
|
|
113
|
+
dsh plugin --profile web add dsh-codex-style-computer-use
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
يجب أن تستخدم تشخيصات سطح المكتب **أداة سطر الأوامر المضمَّنة في تطبيق Desktop الرسمي**:
|
|
117
|
+
|
|
118
|
+
```powershell
|
|
119
|
+
$CuDshInstall = Join-Path $env:LOCALAPPDATA 'Programs\DeepSeek Harness'
|
|
120
|
+
& "$CuDshInstall\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop why dsh-codex-style-computer-use
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
في التثبيت المخصص، اضبط `$CuDshInstall` على الدليل الموجود في هدف اختصار Desktop. وقد يرفض `dsh` العام الأقدم في npm ملف سطح المكتب الشخصي. لا تضف `resources/runtime/bin` إلى PATH العام، ولا تثبّت pnpm منفصلًا لهذه المهمة. ويُفضَّل استخدام واجهة الإضافة للتثبيت.
|
|
124
|
+
|
|
125
|
+
## المهارة المضمَّنة
|
|
126
|
+
|
|
127
|
+
تبقى أدوات القيادة مقفلة حتى تُنتج الجلسة عبارة إيصال موجودة فقط داخل `skills/computer-use/SKILL.md`. وهذا مقصود — فهو أقوى صيغة صادقة لقاعدة «اقرأ الدليل قبل القيادة»، لأن أي طبقة أدوات لا تستطيع أن ترى ما إذا كان النموذج قد قرأ مستندًا.
|
|
128
|
+
|
|
129
|
+
وتسجّل الإضافة المهارة المضمَّنة عبر `ctx.skills.register()` عند توفره. وإذا غابت تلك الخدمة، يُرجع `computer_use_activate` الدليل نفسه ومساره المطلق للمصدر وقائمة الأدوات محددة النطاق. ويظل الإيصال وجميع فحوص الموافقة والفرملة الحالية سارية.
|
|
130
|
+
|
|
131
|
+
## الإدخال المشترك في 1.2.0-rc.2
|
|
132
|
+
|
|
133
|
+
يقدّم هذا الإصدار التمهيدي تولّي الإنسان الفوري، والانتظار التلقائي بعد ثانيتين من الإدخال المتواصل، والمتابعة بعد 3 ثوانٍ هادئة. ويحدث الانتظار محليًا دون استقصاء من النموذج. وتتطلب الكتابات المتقطعة قراءة جديدة، ولا تُعاد أبدًا على نحو أعمى. ويحرّر إلغاء المضيف الإدخال المقبول المملوك للأتمتة دون إنشاء إيقاف مؤقت دائم جديد. ويُحتفَظ بالتعامل الحالي مع DSH Pet/النافذة الرئيسية ومع الطبقة العليا الأصلية.
|
|
134
|
+
|
|
135
|
+
وقد اجتازت المسارات المهيَّأة GLM 5.3 Max وGLM 5.3 Flash وDeepSeek Flash اختبارًا مضبوطًا لبروتوكول المتابعة. وجرى التحقق من الإدخال الأصلي والمفاتيح الفعلية على نحو منفصل؛ وهذا ليس اختبارًا معياريًا عامًا لسطح المكتب أو للرؤية. انظر [التحقق من الإصدار](docs/RELEASE-1.2.0-rc.2.md) لمعرفة النطاق.
|
|
136
|
+
|
|
137
|
+
## عناصر التحكم عند الطلب في 1.1
|
|
138
|
+
|
|
139
|
+
- **أدوات لكل وكيل:** يرى الوكلاء الخاملون `computer_use_activate` و`computer_ctrl` و`computer_ask`. وتحميل ناجح لمهارة computer-use أو إيصال أو تنشيط يتيح 19 أداة لسطح المكتب إضافةً إلى مدخل التنشيط لذلك الوكيل. أما الوكلاء الآخرون والأتباع فيُنشّطون باستقلال. وتُدعم الاستدعاءات الأصلية و`run_code` في Node. ولا يبدأ التنشيط التحكم ولا يحرّر فرملة بشرية.
|
|
140
|
+
- **أهداف UIA المرصودة:** يُرجع استعلام اسم/معرّف محدد النطاق مقبض هدف معتمًا. استخدمه لأفعال الأنماط؛ ويتيح `rebind:true` الاختياري استعادة الهوية الفريدة أو الاستعادة الدلالية بعد الاستبدال في النافذة نفسها. وتُرفَض السياقات المتغيّرة والغموض والمسوحات غير المكتملة. وتتخطى الاستعلامات الواسعة مقابض الاستعادة ما لم يكن `targets:true`؛ وإنشاء شهود لقائمة كبيرة يكلّف عملًا أصليًا إضافيًا.
|
|
141
|
+
- **ملاحظات تزايدية:** مرّر معرّف الملاحظة السابقة بوصفه `since` مع الاستعلام نفسه. وتحافظ الفروق على الإضافات والتغييرات والإزالات والترتيب. واللقطات معزولة بحسب الوكيل، بحد أقصى 64 ملاحظة مفهرسة و4 MiB من JSON المحتفظ به لكل مخزن. ويسترجع `snapshot` نتيجة تاريخية محفوظة؛ ويقسّم `offset` و`limit` مصفوفاتها إلى صفحات. وتُرجَع المخرجات الكاملة عند غياب الأسس أو تغيّر النطاق أو نقص الأدلة أو كبر الفرق.
|
|
142
|
+
|
|
143
|
+
انظر [البروتوكول المفصّل](skills/computer-use/references/progressive-control.md) لحدود التخزين المؤقت وحدود الاستعادة. وتحافظ لقطات UIA على الحقول التي يعيدها المزوّد ضمن حدود المزوّد الحالية؛ والاسترجاع التاريخي ليس تحققًا جديدًا من النتيجة.
|
|
144
|
+
|
|
145
|
+
## الأدوات
|
|
146
|
+
|
|
147
|
+
| المجموعة | الأدوات |
|
|
148
|
+
|---|---|
|
|
149
|
+
| التنشيط | `computer_use_activate` |
|
|
150
|
+
| الملاحظة | `computer_state` `computer_shot` `computer_ocr` `computer_marks` `computer_uia` |
|
|
151
|
+
| التنفيذ | `computer_click` `computer_move` `computer_drag` `computer_scroll` `computer_select` `computer_key` `computer_type` `computer_uia_act` `computer_window` `computer_clip` |
|
|
152
|
+
| التدفق | `computer_wait` `computer_batch` |
|
|
153
|
+
| الميتا | `computer_ask` `computer_ctrl` |
|
|
154
|
+
|
|
155
|
+
يُرجع `computer_marks` علامات مرقّمة للعناصر التي وجدها على الشاشة؛ ويحفظ `computer_marks {shot:true}` أيضًا صورة مشروحة. ويُرجع `computer_shot` لقطة شاشة عادية، ومرفق صورة أصليًا على المسارات القادرة على الصور. والعلامة معرّف لقطة: تُتحقَّق مقابل هوية النافذة والبكسلات المعاينة قبل إرسال أي إدخال، فتُرفَض العلامة القديمة بدلًا من النقر في الموضع الخطأ.
|
|
156
|
+
|
|
157
|
+
## أوضاع الموافقة
|
|
158
|
+
|
|
159
|
+
إذا كان مضيفك يبلّغ عن رفض تلقائي لمطالبة معطّلة بعبارة «the user rejected tool»، فانظر [رقعة إسناد الموافقة في DSH واختبار الانحدار](docs/APPROVAL-ATTRIBUTION.md).
|
|
160
|
+
|
|
161
|
+
يُضبط `automationMode` في إعدادات الإضافة، وقيمته الافتراضية `standard`:
|
|
162
|
+
|
|
163
|
+
| الوضع | الملاحظة | التنفيذ |
|
|
164
|
+
|---|---|---|
|
|
165
|
+
| `read-only` | مسموح | مرفوض |
|
|
166
|
+
| `standard` | مسموح | كل فعل يسأل عبر بطاقة الموافقة في المضيف |
|
|
167
|
+
| `autonomous` | مسموح | مسموح، والعمليات عالية الخطورة ما زالت تسأل |
|
|
168
|
+
| `unrestricted` | مسموح | مسموح (يظل نظام الأمان الاحتياطي للعامل وحدّ المعدل ساريين) |
|
|
169
|
+
|
|
170
|
+
العمليات عالية الخطورة (إغلاق نافذة، و`alt+f4`، و`win+r`، وما شابهها) تسأل في كل وضع. وتُكتشَف حقول كلمات المرور عبر `IsPassword` في UI Automation وتُرفض افتراضيًا.
|
|
171
|
+
|
|
172
|
+
## نموذج السلامة
|
|
173
|
+
|
|
174
|
+
- **الإدخال المشترك** — يُسمح بنشاط المستخدم العادي بينما يفكر الوكيل أو يلاحظ أو يتحضّر. وأثناء التنفيذ الفعلي، تتنازل الكتابة والتمرير والأزرار فورًا؛ ولحركة المؤشر سماحية إزاحة تبلغ 16 بكسل. والإدخال المتواصل أو الضغط المستمر على مفتاح/زر لمدة ثانيتين يدخل الانتظار التلقائي. وبعد التحرير و3 ثوانٍ هادئة، يجب على الوكيل أن يفحص الهدف الحالي ويكمل المهمة الأصلية، دون إعادة تشغيل الكتابات الجزئية على نحو أعمى. ويُظهر تدرّج حافة أصفر شاحب لطيف ملكية الإنسان.
|
|
175
|
+
- **الإيقاف اليدوي** — لا يرفع فرملة إدخال دائمة إلا `Ctrl+Esc` الفعلي؛ ويستأنف `Ctrl+Alt+R`. ولا يُنشئ هذا الإيقافَ الضغطُ العادي على Esc أو الكتابة أو التمرير أو مسافة المؤشر/تواتره أو زاوية الشاشة. وتبقى وسائل التعليق الصريحة للسؤال/التشخيص منفصلة.
|
|
176
|
+
- **الخروج** — يُنهي `Ctrl+Alt+Q` الجلسة: تختفي الطبقة العلوية، ويُفكّ مستمعوها، وتُرفَض أي أتمتة لاحقة حتى تفتح جولة تالية جلسة جديدة.
|
|
177
|
+
- **الفرملة حقيقة تخص الجهاز لا عملية واحدة** — تُحفظ الحالة المفعّلة، ويعتمدها كل عامل، بما في ذلك عامل يبدأ لاحقًا من صدفة (shell).
|
|
178
|
+
- **التدقيق** — تُضاف كل أتمتة إلى `$DSH_HOME/data/computer-use/audit.jsonl` مع تعقيم الوسائط.
|
|
179
|
+
- **مفتاح إيقاف الإضافة نفسها** — يجعل `DSH_COMPUTER_USE_KILL=1` الإضافة ترفض البدء؛ و`dryRun: true` يحاكي الأتمتة ويسجّلها فقط.
|
|
180
|
+
|
|
181
|
+
## الإعدادات
|
|
182
|
+
|
|
183
|
+
| المفتاح | الافتراضي | المعنى |
|
|
184
|
+
|---|---:|---|
|
|
185
|
+
| `automationMode` | `standard` | وضع الموافقة (أعلاه) |
|
|
186
|
+
| `progressiveTools` | `true` | تنشيط لكل وكيل؛ و`false` يتيح 19 أداة لسطح المكتب على نحو عام |
|
|
187
|
+
| `actionFeedback` | `true` | الملاحظة التلقائية بعد الأفعال المباشرة والدفعات |
|
|
188
|
+
| `actionFeedbackDetail` | `compact` | `compact` أو `full` أو `none`؛ ويتجاوز `feedback` في الاستدعاء هذه القيمة الافتراضية؛ وتُرجَع الأدلة غير المخزنة مؤقتًا إلى مخرجات كاملة ضمن الرد |
|
|
189
|
+
| `dryRun` | `false` | محاكاة الأتمتة والتسجيل فقط |
|
|
190
|
+
| `maxActionsPerMinute` | `60` | حدّ معدل الأتمتة على مستوى النواة |
|
|
191
|
+
| `annotateMarks` | `true` | رسم مربّعات Set-of-Marks على لقطات الشاشة |
|
|
192
|
+
| `workerExe` | `""` | مسار صريح للعامل؛ فارغ = اكتشاف تلقائي أو ترجمة |
|
|
193
|
+
| `snapshotDir` | `""` | دليل لقطات الشاشة؛ فارغ = `$DSH_HOME/data/computer-use/shots` |
|
|
194
|
+
|
|
195
|
+
## خادم MCP
|
|
196
|
+
|
|
197
|
+
`mcp/` هو خادم MCP stdio بلا تبعيات يعمل فوق النواة نفسها، للعملاء الذين يتحدثون MCP بدلًا من Cordis:
|
|
198
|
+
|
|
199
|
+
```sh
|
|
200
|
+
# published package (2.0.1 and later) — no checkout needed
|
|
201
|
+
npx -y dsh-codex-style-computer-use
|
|
202
|
+
|
|
203
|
+
# from a checkout
|
|
204
|
+
node mcp/src/index.js
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
يبلّغ الخادم المضمَّن عن إصدار هذه الحزمة الجذرية. ويبدأ بالملاحظة فقط. ويجوز للمضيف المُشغِّل ضبط `DSH_CU_ALLOW_INPUT=1` عندما يملك التخويل لأفعال سطح المكتب؛ ولا يمكن لاستدعاءات أدوات MCP تفعيل الإدخال. وأداة التوافق `cu_approve` تبلّغ عن هذه القاعدة فقط ولا تمنح الموافقة أبدًا. وسياسة `automationMode` في DSH تخص محوّل Cordis وليست خدمة موافقة في MCP. و`DSH_CU_DRY_RUN=1` يحاكي إدخالًا مكّنه المضيف مسبقًا.
|
|
208
|
+
|
|
209
|
+
ويستخدم المحوّلان قواعد أوامر المفاتيح نفسها، وقواعد الإخفاق والمتابعة في الدفعات، وتعيين إحداثيات الصور. ويُرجع MCP بيانات وصفية منظمة للالتقاط وصورة PNG/JPEG واحدة هي الأحدث، دون تسلسل بايتات الصورة في نص JSON. ويحجز `cu_hold` / `cu_free` المشهد بين الأفعال أو يحرّره؛ ويُنهي `cu_release` دورة سطح المكتب. ويقبل `cu_drag` فحوص `expectCursor` و`hwnd`. ويعرض MCP سطح أدوات أصغر؛ أما التكامل الخاص بـ DSH لسؤال الإنسان ودورة حياة المضيف فيوفره محوّل Cordis.
|
|
210
|
+
|
|
211
|
+
## التطوير
|
|
212
|
+
|
|
213
|
+
تستخدم فحوص إصدار الناشر سجل npm الرسمي افتراضيًا. وإذا تعذّر الوصول إلى ذلك الأصل في شبكتك، يختار `CU_REGISTRY` مرآة صريحة لأمر `check` للقراءة فقط؛ وتتضمن نتيجة JSON المفتاحين `registry` و`authoritative`. مثال في PowerShell (وهذا يغيّر الصدفة الحالية فقط):
|
|
214
|
+
|
|
215
|
+
```powershell
|
|
216
|
+
$env:CU_REGISTRY = 'https://registry.npmmirror.com'
|
|
217
|
+
node scripts/release-channel.mjs check 1.2.0
|
|
218
|
+
Remove-Item Env:CU_REGISTRY
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
الرمز `0` يعني أن الإصدار اجتاز فحص الناشر البالغ 24 ساعة، و`2` يعني أنه ما زال في فترة التبريد، و`1` يعني فشل الفحص. ولا يثبت فشل الشبكة أن حزمة غير منشورة، وقد تتأخر المرايا. ويعيد `promote` الفحص دائمًا ويكتب إلى `https://registry.npmjs.org`، متجاهلًا `CU_REGISTRY`؛ ويحتاج إلى الوصول إلى ذلك الأصل، مستخدمًا إعداد وسيط npm عند الحاجة. وأداة الناشر هذه ليست جزءًا من تثبيت المستخدم النهائي. انظر [إجراء الإصدار](docs/RELEASE-1.2.0.md).
|
|
222
|
+
|
|
223
|
+
يشحن المستودع مجموعة الفحوص الحارسة التي تحمي الثوابت أعلاه — عمر الدورة، وبروتوكول السؤال/الفرملة، وتصنيف العمليات، وبوابة المهارة، وربط المهارة المضمَّنة:
|
|
224
|
+
|
|
225
|
+
```sh
|
|
226
|
+
pwsh -NoProfile -ExecutionPolicy Bypass -File build/run-guards.ps1 # all guards
|
|
227
|
+
node build/verify-tools-schema.mjs # tool-schema load guard
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
تُجمَّع تعريفات الأدوات عبر DSL الحقيقي `@deepseek-ai/dsh-tools`، فلذلك يُخفِق خطأ في المخطط هنا بدلًا من إسقاط شجرة إضافات المضيف عند إعادة التشغيل. وبعض الفحوص تجمع العامل الأصلي وهي خاصة بـ Windows.
|
|
231
|
+
|
|
232
|
+
## الترخيص
|
|
233
|
+
|
|
234
|
+
MIT — انظر [LICENSE](LICENSE).
|
package/README.de.md
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Computer Use im Codex-Stil
|
|
2
|
+
|
|
3
|
+
**Die präziseste Art, Windows aus DeepSeek Harness heraus zu steuern — und die günstigste pro Aufgabe.**
|
|
4
|
+
|
|
5
|
+
Beschreiben Sie das Ziel. Ihr Agent liest exakte Steuerelement-Identitäten, handelt über die Steuerelemente selbst, verifiziert das Ergebnis — und erledigt eine bekannte Sequenz in einem einzigen Modell-Roundtrip statt in zehn.
|
|
6
|
+
|
|
7
|
+
[English](README.md) | [中文](README.zh.md) | [Français](README.fr.md) | **Deutsch** | [Español](README.es.md) | [Português](README.pt.md) | [العربية](README.ar.md) | [Русский](README.ru.md) | [فارسی](README.fa.md) · [Installation](#install-and-update-in-dsh-market) · [Änderungsprotokoll](CHANGELOG.md) · [Neuerungen 2.0.0](docs/RELEASE-2.0.0.md)
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
## Warum es die präzise Wahl ist
|
|
12
|
+
|
|
13
|
+
- **Identität statt Raten.** UI Automation legt den echten Steuerelementbaum mit exakten `AutomationId`s offen, und Aktionen können ein Steuerelement über seine eigenen UI-Automation-Muster ansteuern, statt Koordinaten anzuklicken.
|
|
14
|
+
- **Markierungen werden geprüft, nicht blind vertraut.** Standardmäßig wird eine nummerierte Markierung vor dem Absenden von Eingaben gegen die Fensteridentität und abgetastete Pixel validiert, sodass eine veraltete Markierung abgelehnt statt an der falschen Stelle angeklickt wird. Wenn ein animierter Nachbar die Pixelsignatur immer wieder ungültig macht, bindet `uiaOnly` die Identität an das Fensterhandle und die Geometrie, während die Verdeckungsprüfung zum Zeitpunkt des Absendens weiterhin gilt.
|
|
15
|
+
- **Abfragen bleiben begrenzt.** UIA-Abfragen verwenden standardmäßig Tiefe 6, 120 Knoten und ein weiches Zeitbudget von 1200 ms; eine Abfrage, die tiefer als 6 geht oder mehr als 300 Knoten umfasst, erfordert einen gemessenen `anchor`, damit eine Abfrage nicht unbemerkt die falsche Region durchsucht.
|
|
16
|
+
- **Wenn die App es verbirgt, lesen Sie es.** `computer_ocr` liefert Zeilen und Boxen pro Wort in absoluten Bildschirmpixeln, sodass sich auch Anwendungen ohne UIA anhand ihres Namens auffinden lassen.
|
|
17
|
+
|
|
18
|
+
## Warum es weniger kostet
|
|
19
|
+
|
|
20
|
+
- **Eine Modellrunde für eine bekannte Sequenz.** Ein `computer_batch`-Aufruf führt eine Aktionsliste seriell aus, stoppt beim ersten Fehler und kostet einen Modell-Roundtrip statt einen pro Aktion.
|
|
21
|
+
- **Nur das Delta kommt zurück.** Übergeben Sie die vorherige Beobachtungs-ID als `since` und erhalten Sie Ergänzungen, Änderungen, Löschungen und die Reihenfolge — nicht wieder den ganzen Baum.
|
|
22
|
+
- **Standardmäßig kompakte Quittungen in 2.0.0.** Der Text nach einer Aktion erweitert die Aktionsquittung normalerweise um höchstens 6 KiB; `feedback: full` steht weiterhin zur Verfügung, wenn Details wichtiger sind.
|
|
23
|
+
- **Belege bleiben außerhalb des Gesprächs.** Vollständige Belege zu einzelnen Punkten können in einem begrenzten lokalen Cache aufbewahrt werden (4 MiB Arbeitsspeicher, 32 MiB Festplatte, 64 Einträge, 24 Stunden Ablaufzeit) und bei Bedarf abgerufen werden.
|
|
24
|
+
- **Lokale Arbeit bleibt lokal.** UI Automation, Bildschirm-OCR und Pixelprüfungen laufen im vorkompilierten nativen Worker — keine zusätzlichen Vision-Kosten pro Schritt.
|
|
25
|
+
|
|
26
|
+
## Entwickelt für einen Desktop, den Sie weiterhin nutzen
|
|
27
|
+
|
|
28
|
+
- **Es wartet auf Sie.** Eine 1-sekündige Ankündigung vor der Eingabe (0,1 Sekunden innerhalb eines gleitenden 3-Minuten-Fensters) gibt den Desktop sofort zurück; wenn Sie fertig sind, beobachtet der Agent erneut und setzt die ursprüngliche Aufgabe fort.
|
|
29
|
+
- **Die Bremse erreicht das Modell.** `Ctrl+Esc` pausiert, `Ctrl+Alt+R` setzt fort, `Ctrl+Alt+Q` beendet, und ein Stopp wird in die laufende Sitzung eingespeist. Genehmigungen bleiben standardmäßig aktiv und Passwortfelder werden standardmäßig abgelehnt.
|
|
30
|
+
- **Es meldet, was es nicht kann.** Der sichere Windows-Desktop (UAC-Aufforderung oder Sperrbildschirm) wird erkannt, gemeldet und anschließend fortgesetzt — statt blind erneut zu versuchen.
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
Die Abbildungen oben zeigen das in 1.3.0 eingeführte Interaktionsmodell; der Drachenzeiger, begrenzte Abfragen und kompakte Quittungen aus 2.0.0 werden oben beschrieben. Der tatsächliche Token-Verbrauch hängt von Aufgabe, Modell und Beobachtungsstrategie ab. Genehmigungen bleiben standardmäßig aktiviert; ausdrückliche Pause, Abbruch und Beenden bleiben maßgeblich.
|
|
37
|
+
|
|
38
|
+
**Bereit zur Installation.** 19 Desktop-Tools, native Hilfsprogramme inklusive. Kein SDK und keine Kompilierung bei der Installation. Erfordert Windows, Node.js ≥ 22 und das mit Windows gelieferte .NET Framework 4.x. Ein unabhängiges Community-Plugin; Codex beschreibt den Interaktionsstil.
|
|
39
|
+
|
|
40
|
+
## Neu in 2.0.0
|
|
41
|
+
|
|
42
|
+
- **Standardmäßig kompakte Quittungen** — der Text nach einer Aktion erweitert die Aktionsquittung normalerweise um höchstens 6 KiB; `feedback: full` und `feedback: none` sind ausdrückliche Alternativen.
|
|
43
|
+
- **Begrenzte, verankerte UIA-Abfragen** — standardmäßig Tiefe 6, 120 Knoten und ein weiches Zeitbudget von 1200 ms; Abfragen, die tiefer als 6 gehen oder mehr als 300 Knoten umfassen, benötigen einen gemessenen `anchor`.
|
|
44
|
+
- **Belege auf Abruf** — 4 MiB Arbeitsspeicher + 32 MiB Festplatte, 64 Einträge, 24 Stunden Ablaufzeit; bei einem Festplattenfehler wird auf den begrenzten Arbeitsspeicher zurückgegriffen.
|
|
45
|
+
- **Adaptive Vorbereitungsankündigung** — anfangs 1 Sekunde, 0,1 Sekunden innerhalb eines gleitenden 3-Minuten-Fensters; der geneigte Drachenzeiger markiert den Klickpunkt des Agenten.
|
|
46
|
+
- **Gehärteter Eingabepfad** — abgesicherte Tastenkombinationen für die Fensterverwaltung, Gegendruck und Erholung des Workers, Prüfungen auf veraltete Ziele und Aufräumen bei Abbruch.
|
|
47
|
+
|
|
48
|
+
<details>
|
|
49
|
+
<summary>Aktuelle Version und Kompatibilität</summary>
|
|
50
|
+
|
|
51
|
+
**2.0.0** ist das neue Major-Release und wird zunächst über npm `next` verteilt, solange das 24-Stunden-Release-Gate läuft. Siehe [Änderungen und Migration in 2.0.0](docs/RELEASE-2.0.0.md). Prüfen Sie die Registry-Tags für die aktuell stabile Verfügbarkeit.
|
|
52
|
+
|
|
53
|
+
Version 1.3.1 liest Text anhand des Namens vom Bildschirm, erkennt den sicheren Windows-Desktop und setzt von selbst fort. Jede Farbe bleibt auf derselben, aus der DPI abgeleiteten Randschiene mit einem sichtbaren Mindestmaß an Atembewegung. Version 1.3.0 gibt die Desktopsteuerung frei, wenn die Arbeit endet, während der Chat weiterläuft.
|
|
54
|
+
|
|
55
|
+
Frühere Korrekturen: [1.2.3 Genehmigungszuordnung](docs/RELEASE-1.2.3.md) · [1.2.1 native Aufmerksamkeitskorrektur](docs/RELEASE-1.2.1.md) · [Standalone-Host-Patch](docs/RELEASE-1.2.2.md).
|
|
56
|
+
|
|
57
|
+
</details>
|
|
58
|
+
|
|
59
|
+
## Was es leistet
|
|
60
|
+
|
|
61
|
+
Version 2.0.0 verwendet außerdem während der KI-Bedienung und des Szenen-Halts einen kompakten blauen Drachenzeiger. Seine geneigte Spitze markiert den Klickpunkt, mit kleinen Text- und Größenänderungssymbolen im Drachen. Ein atmender Drachen bedeutet, dass Seite und Zeigerposition unverändert bleiben sollen; der freie Modus stellt den normalen Cursor der Anwendung wieder her. Das Windows-Cursorthema des Benutzers bleibt erhalten.
|
|
62
|
+
|
|
63
|
+
Version 2.0.0 begrenzt die UIA-Durchquerung und verwendet standardmäßig kompakten Text nach Aktionen. Die bestehende Bildrückmeldung bleibt verfügbar; `feedback: compact|full|none` steuert den Detailgrad, und mit `verificationRegion: "x,y,w,h"` benennt ein Klick den erwarteten Wirkungsbereich unabhängig vom Eingabepunkt. Kompakter Text erweitert die ursprüngliche Aktionsquittung normalerweise um höchstens 6 KiB. Vollständige Belege zu einzelnen Punkten können in einem begrenzten, mit Ablaufzeit versehenen lokalen Cache aufbewahrt und bei Bedarf abgerufen werden. Bei einem Festplattenfehler wird auf begrenzten Arbeitsspeicher zurückgegriffen; wenn kein abrufbarer Snapshot aufbewahrt werden kann, werden die aktuellen Belege vollständig inline zurückgegeben — außerhalb dieses kompakten Budgets, ohne eine weitere Beobachtung oder Eingabe.
|
|
64
|
+
|
|
65
|
+
Gefilterte UIA-Abfragen erfordern `hwnd`. Standardwerte sind Tiefe 6, 120 Knoten und ein weiches Zeitbudget von 1200 ms. Eine Abfrage, die tiefer als 6 geht oder mehr als 300 Knoten umfasst, erfordert einen gemessenen `anchor:"x,y"` in diesem Fenster; eine exakte `id` umgeht diese Regel nicht. Ein Provider-Aufruf kann das weiche Zeitbudget überschreiten, und Teilergebnisse können Abwesenheit oder Eindeutigkeit nicht belegen. Prüfen Sie nach einer Tastenkombination zur Fensterverwaltung `computer_state {windows:true}`, aktivieren Sie das gewünschte Fenster erfolgreich und beobachten Sie es, bevor Sie weitere Tastatureingaben machen.
|
|
66
|
+
|
|
67
|
+
- **Beobachten** — Fensterliste, Screenshots (Region / JPEG / PNG / herunterskaliert), eine Set-of-Marks-Karte der anklickbaren Elemente und der UI-Automation-Baum mit exakten `AutomationId`s.
|
|
68
|
+
- **Handeln** — klicken, bewegen, ziehen, scrollen, einen Textbereich auswählen, tippen, Tasten drücken und Steuerelemente über ihre eigenen UI-Automation-Muster statt über blinde Koordinaten ansteuern.
|
|
69
|
+
- **Bündeln** — ein `computer_batch`-Aufruf führt eine Aktionsliste seriell aus und stoppt beim ersten Fehler, sodass eine bekannte Sequenz einen Modell-Roundtrip statt zehn kostet.
|
|
70
|
+
- **Fragen** — `computer_ask` stellt eine Frage auf derselben Chat-Karte, die DSH für `ask_user_question` verwendet, ohne Countdown.
|
|
71
|
+
- **Eine menschliche Bremse, die das Modell erreicht** — ein Stopp wird in die laufende Sitzung eingespeist, sodass der Agent erfährt, dass er unterbrochen wurde, statt es erst im nächsten Turn zu entdecken.
|
|
72
|
+
|
|
73
|
+
Die Tools beobachten den Desktop, statt Benutzerdokumente zu durchkämmen. Das Plugin verwaltet native Hilfsprogramme in `%LOCALAPPDATA%\dsh-computer-use\worker\` sowie Audit-Protokolle, Screenshots und einen eigenen begrenzten `observation-cache` unter `$DSH_HOME/data/computer-use/`. `computer_ctrl {action:"clear_cache"}` leert den Beobachtungs-Cache dieses Agenten; es löscht keine Screenshots, Anhänge oder Benutzerdokumente.
|
|
74
|
+
|
|
75
|
+
<a id="install-and-update-in-dsh-market"></a>
|
|
76
|
+
|
|
77
|
+
## Installation und Updates in dsh-market
|
|
78
|
+
|
|
79
|
+
Suchen Sie im Markt nach **computer-use** oder **Codex-style**. Achten Sie auf das Repository **ltmroberthk915/dsh-computer-use** und das npm-Paket **dsh-codex-style-computer-use** (Betreuer: **ltmroberthk**), und klicken Sie dann auf **Installieren**. Nutzen Sie **Aktualisieren** bzw. **Alle aktualisieren** für Updates im stabilen Kanal. Beide nativen Hilfsprogramme sind enthalten; weder PowerShell 7 noch Build-Berechtigungen sind erforderlich.
|
|
80
|
+
|
|
81
|
+
Alternativ geben Sie **`dsh-codex-style-computer-use`** in **Einstellungen → Plugins → Plugin hinzufügen** für den aktuellen stabilen Kanal ein oder **`dsh-codex-style-computer-use@2.0.0`** für die hier beschriebene Version. Geben Sie die npm-Paketspezifikation direkt ein. Ihr Host kann für frische Versionen eine Wartezeit anwenden; folgen Sie seinen Hinweisen. Ein neu hinzugefügtes Bundle kann auf unterstützten Hosts live geladen werden; prüfen Sie, ob seine Tools und sein Skill erscheinen. Starten Sie aus dem Tray neu, wenn Sie eine geladene Version ersetzen, wenn der Client veraltet bleibt oder wenn DSH **restart-required** meldet.
|
|
82
|
+
|
|
83
|
+
### Releases, die weniger als 24 Stunden alt sind
|
|
84
|
+
|
|
85
|
+
Die standardmäßige, nicht strikte Konfiguration von pnpm 11.7.0 vermerkt automatisch eine Ausnahme für eine einzelne Version und installiert. Eine erfolgreiche Installation auf einem Rechner belegt nicht, dass ein anderer Rechner frische Versionen zulässt.
|
|
86
|
+
|
|
87
|
+
Mit `minimumReleaseAgeStrict: true` (oder einer Host-Richtlinie, die strikte Prüfungen des Release-Alters aktiviert) und ohne anwendbare Ausnahme wird eine Version unterhalb des konfigurierten Alters abgelehnt, bevor Plugin-Code ausgeführt wird. Der bloße Name, eine exakte Fixierung auf `@1.2.0` und die npm-Tarball-URL schlugen unter dieser Richtlinie alle nachweislich mit `ERR_PNPM_NO_MATURE_MATCHING_VERSION` fehl. Das explizite Setzen von `minimumReleaseAge: 1440` aktiviert in pnpm 11.7.0 ebenfalls striktes Verhalten, sofern `minimumReleaseAgeStrict` nicht separat auf false gesetzt wird. Ein Neustart von DSH, die Installation von PowerShell oder das Wiederholen desselben Befehls beheben eine Ablehnung durch die strikte Richtlinie nicht. Die offizielle Desktop-Bridge akzeptiert keine zusätzlichen pnpm-Flags.
|
|
88
|
+
|
|
89
|
+
Wenn eine strikte Richtlinie die Installation blockiert, warten Sie, bis die Version das konfigurierte Alter erreicht, um ohne Änderung der Richtlinie zu installieren. Version 1.2.0 wurde am `2026-10-03T03:50:11.586Z` veröffentlicht; sie erfüllt die 24-Stunden-Grenze ab **2026-10-04 03:50:12 UTC** (11:50:12 in China). Eine längere benutzerdefinierte Grenze oder ein verzögerter Registry-Spiegel können die Verfügbarkeit weiter hinauszögern. Benutzer der standardmäßigen, nicht strikten Konfiguration müssen für dieses Paket weder warten noch die Konfiguration bearbeiten.
|
|
90
|
+
|
|
91
|
+
Wenn Sie sich ausdrücklich dafür entscheiden, früher zu installieren, übernehmen Sie diese Ausnahme für eine einzelne Version in die bestehende `pnpm-workspace.yaml` des Zielprofils und wiederholen Sie dann die Installation aus dem Markt. Behalten Sie andere Einträge bei; deaktivieren Sie nicht die globale Altersrichtlinie:
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
minimumReleaseAgeExclude:
|
|
95
|
+
- dsh-codex-style-computer-use@1.2.0
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Der standardmäßige Desktop-Pfad ist `%USERPROFILE%\.dsh\profiles\desktop\pnpm-workspace.yaml`; verwenden Sie das tatsächliche Verzeichnis, wenn `DSH_HOME` angepasst ist. Entfernen Sie diese eine Ausnahme bei Bedarf, sobald die Version das erforderliche Alter erreicht hat.
|
|
99
|
+
|
|
100
|
+
Die früheren Korrekturen an der Dokumentation und an der Publisher-Prüfung änderten die 1.2.0-Laufzeit nicht und erforderten keine Neuinstallation. Die native Aufmerksamkeitskorrektur in **1.2.1** erfordert jedoch ein Update. Das erneute Hinzufügen derselben Quelle kann bei einigen Installationswegen einen Host-Fehler `ambiguous-install` erzeugen; eine Neuinstallation von 1.2.0 wendet die Korrektur aus 1.2.1 nicht an.
|
|
101
|
+
|
|
102
|
+
**Migration einer älteren Git-/Tarball-Installation aus diesem Repository:** Entfernen Sie den alten Eintrag **dsh-computer-use** im Markt und installieren Sie dann **dsh-codex-style-computer-use**. Der npm-Name ohne Scope `dsh-computer-use` gehört zu einem anderen Repository; installieren Sie ihn nicht als Upgrade dieses Plugins. Eine Git-Installation kann ihre Abhängigkeitsidentität nicht allein durch das Abrufen eines neuen Commits wechseln. Nach dieser einmaligen UI-Migration verwenden Sie die normalen Markt-Updates. Bestehende Toolnamen `computer_*` und der Einstellungs-Namespace `computer-use` bleiben erhalten.
|
|
103
|
+
|
|
104
|
+
**Behalten Sie auch Ihre gespeicherte Konfiguration bei:** Legen Sie eine Sicherung der `cordis.patch.yml` des Profils an und ändern Sie dann in einem Override mit `id: computer-use` nur `name: dsh-computer-use` in `name: dsh-codex-style-computer-use`. Behalten Sie sämtliche Felder `config` und `disabled` bei. Allein die Beibehaltung des Einstellungs-Namespace reicht nicht: Eine Namensabweichung führt dazu, dass DSH selbst `read-only`, `dryRun` und Overrides im deaktivierten Zustand überspringt. Ersetzen Sie nicht global andere Plugins oder einen gemeinsamen Home-Patch. `scripts/migrate-profile.mjs` im Repository zeigt standardmäßig eine Vorschau an; `--apply` erstellt eine Sicherung und ersetzt die Datei atomar und lehnt gleichzeitige Änderungen ab.
|
|
105
|
+
|
|
106
|
+
Alternativ können Sie das [Migrationsprogramm für die Konfiguration](https://github.com/ltmroberthk915/dsh-computer-use/releases/download/v1.2.0/computer-use-profile-migration.zip) herunterladen, es entpacken und auf `migrate-profile.cmd` doppelklicken. Es ermittelt die installierte offizielle Desktop-App und verwendet Windows PowerShell 5.1 sowie das mit DSH gelieferte Node, um das Standard-Desktopprofil zu reparieren. Es stoppt, wenn das neue Bundle fehlt oder das alte Bundle noch ausgewählt ist. Es ändert nicht die Release-Altersrichtlinie. Für ein anderes Profil führen Sie `migrate-profile.ps1 -ProfileDirectory <absolute-directory>` aus, um eine Vorschau zu erhalten, und fügen dann `-Apply` hinzu, wenn Sie bereit sind.
|
|
107
|
+
|
|
108
|
+
Das GitHub-Release enthält außerdem `dsh-computer-use.tgz` für die Offline- und manuelle Installation; die Installation über die Registry ist der Standard für Markt-Updates.
|
|
109
|
+
|
|
110
|
+
CLI-Benutzer (Web-Profil):
|
|
111
|
+
|
|
112
|
+
```sh
|
|
113
|
+
dsh plugin --profile web add dsh-codex-style-computer-use
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Desktop-Diagnosen müssen die **in der offiziellen Desktop-App enthaltene CLI** verwenden:
|
|
117
|
+
|
|
118
|
+
```powershell
|
|
119
|
+
$CuDshInstall = Join-Path $env:LOCALAPPDATA 'Programs\DeepSeek Harness'
|
|
120
|
+
& "$CuDshInstall\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop why dsh-codex-style-computer-use
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Legen Sie bei einer benutzerdefinierten Installation `$CuDshInstall` auf das Verzeichnis im Ziel der Desktop-Verknüpfung fest. Ein älteres globales npm-`dsh` kann das Desktop-Profil ablehnen. Fügen Sie `resources/runtime/bin` nicht zum globalen PATH hinzu und installieren Sie für diese Aufgabe kein separates pnpm. Bevorzugen Sie die Plugin-UI für die Installation.
|
|
124
|
+
|
|
125
|
+
## Der mitgelieferte Skill
|
|
126
|
+
|
|
127
|
+
Die Steuerungstools bleiben gesperrt, bis die Sitzung eine Quittungsformulierung erzeugt, die nur in `skills/computer-use/SKILL.md` enthalten ist. Das ist Absicht — es ist die stärkste ehrliche Variante von „Lesen Sie die Anleitung, bevor Sie steuern“, denn keine Toolschicht kann sehen, ob ein Modell ein Dokument gelesen hat.
|
|
128
|
+
|
|
129
|
+
Das Plugin registriert den mitgelieferten Skill über `ctx.skills.register()`, wenn verfügbar. Ist dieser Dienst nicht vorhanden, gibt `computer_use_activate` dasselbe Handbuch, seinen absoluten Quellpfad und die bereichsbezogene Tool-Liste zurück. Die Quittung und alle bestehenden Genehmigungs- und Bremsprüfungen gelten weiterhin.
|
|
130
|
+
|
|
131
|
+
## Geteilte Eingabe in 1.2.0-rc.2
|
|
132
|
+
|
|
133
|
+
Diese Vorabversion führt die sofortige Übernahme durch den Menschen ein, das automatische Warten nach 2 Sekunden fortgesetzter Eingabe und die Fortsetzung nach 3 Sekunden Ruhe. Das Warten erfolgt lokal ohne Modell-Polling. Unterbrochene Schreibvorgänge erfordern ein frisches Rücklesen und werden nie blind wiederholt. Eine Host-Stornierung gibt akzeptierte, von der Automatisierung übernommene Eingaben frei, ohne eine neue dauerhafte Pause zu erzeugen. Die bestehende Behandlung von DSH Pet/Hauptfenster und des ursprünglichen Topmost-Status bleibt erhalten.
|
|
134
|
+
|
|
135
|
+
Die konfigurierten Routen GLM 5.3 Max, GLM 5.3 Flash und DeepSeek Flash bestanden einen kontrollierten Test des Fortsetzungsprotokolls. Native Eingabe und physische Hotkeys wurden getrennt verifiziert; dies ist kein allgemeiner Desktop- oder Vision-Benchmark. Zum Umfang siehe [Release-Verifikation](docs/RELEASE-1.2.0-rc.2.md).
|
|
136
|
+
|
|
137
|
+
## Bedarfsgesteuerte Steuerung in 1.1
|
|
138
|
+
|
|
139
|
+
- **Tools pro Agent:** Inaktive Agenten sehen `computer_use_activate`, `computer_ctrl` und `computer_ask`. Ein erfolgreiches Laden des computer-use-Skills, eine Quittung oder eine Aktivierung macht die 19 Desktop-Tools samt Aktivierungseintrag für diesen Agenten verfügbar. Andere Agenten und untergeordnete Agenten aktivieren unabhängig. Native Aufrufe und Node `run_code` werden unterstützt. Eine Aktivierung startet weder die Steuerung noch löst sie eine menschliche Bremse.
|
|
140
|
+
- **Beobachtete UIA-Ziele:** Eine bereichsbezogene Name-/ID-Abfrage gibt ein opakes Ziel-Handle zurück. Verwenden Sie es für Musteraktionen; das optionale `rebind:true` erlaubt eine Wiederherstellung über eindeutige Identität oder Semantik nach einem Austausch im selben Fenster. Bei geändertem Kontext, Mehrdeutigkeit oder unvollständigen Scans wird abgelehnt. Breite Abfragen überspringen Wiederherstellungs-Handles, sofern nicht `targets:true` gesetzt ist; das Erzeugen von Witnesses für eine große Liste verursacht zusätzliche native Arbeit.
|
|
141
|
+
- **Inkrementelle Beobachtungen:** Übergeben Sie die vorherige Beobachtungs-ID als `since` mit derselben Abfrage. Deltas bewahren Ergänzungen, Änderungen, Löschungen und die Reihenfolge. Snapshots sind pro Agent isoliert, mit höchstens 64 indizierten Beobachtungen und 4 MiB aufbewahrtem JSON pro Speicher. `snapshot` ruft ein aufbewahrtes historisches Ergebnis ab; `offset` und `limit` blättern durch dessen Arrays. Fehlende Basisbeobachtungen, geänderter Umfang, unvollständige Belege oder ein größeres Delta fallen auf die vollständige Ausgabe zurück.
|
|
142
|
+
|
|
143
|
+
Siehe [das detaillierte Protokoll](skills/computer-use/references/progressive-control.md) für Cache-Limits und die Grenzen der Wiederherstellung. UIA-Snapshots bewahren vom Provider zurückgegebene Felder innerhalb der bestehenden Provider-Grenzen; der historische Abruf ist keine frische Verifikation des Ergebnisses.
|
|
144
|
+
|
|
145
|
+
## Tools
|
|
146
|
+
|
|
147
|
+
| Gruppe | Tools |
|
|
148
|
+
|---|---|
|
|
149
|
+
| Aktivieren | `computer_use_activate` |
|
|
150
|
+
| Beobachten | `computer_state` `computer_shot` `computer_ocr` `computer_marks` `computer_uia` |
|
|
151
|
+
| Handeln | `computer_click` `computer_move` `computer_drag` `computer_scroll` `computer_select` `computer_key` `computer_type` `computer_uia_act` `computer_window` `computer_clip` |
|
|
152
|
+
| Ablauf | `computer_wait` `computer_batch` |
|
|
153
|
+
| Meta | `computer_ask` `computer_ctrl` |
|
|
154
|
+
|
|
155
|
+
`computer_marks` gibt nummerierte Markierungen für die auf dem Bildschirm gefundenen Elemente zurück; `computer_marks {shot:true}` speichert zusätzlich ein annotiertes Bild. `computer_shot` gibt einen einfachen Screenshot und, auf bildfähigen Routen, einen nativen Bildanhang zurück. Eine Markierung ist eine Snapshot-ID: Sie wird vor dem Absenden von Eingaben gegen die Fensteridentität und abgetastete Pixel validiert, sodass eine veraltete Markierung abgelehnt statt an der falschen Stelle angeklickt wird.
|
|
156
|
+
|
|
157
|
+
## Genehmigungsmodi
|
|
158
|
+
|
|
159
|
+
Wenn ein Host eine automatische Ablehnung bei deaktivierter Nachfrage als „der Benutzer hat das Tool abgelehnt“ meldet, siehe [DSH-Patch zur Genehmigungszuordnung und Regressionstest](docs/APPROVAL-ATTRIBUTION.md).
|
|
160
|
+
|
|
161
|
+
`automationMode` wird in den Einstellungen des Plugins festgelegt und ist standardmäßig `standard`:
|
|
162
|
+
|
|
163
|
+
| Modus | Beobachtung | Betätigung |
|
|
164
|
+
|---|---|---|
|
|
165
|
+
| `read-only` | erlaubt | verweigert |
|
|
166
|
+
| `standard` | erlaubt | jede Aktion fragt über die Genehmigungskarte des Hosts nach |
|
|
167
|
+
| `autonomous` | erlaubt | erlaubt, Vorgänge mit hohem Risiko fragen weiterhin nach |
|
|
168
|
+
| `unrestricted` | erlaubt | erlaubt (Worker-Failsafe und Ratenbegrenzung gelten weiterhin) |
|
|
169
|
+
|
|
170
|
+
Vorgänge mit hohem Risiko (ein Fenster schließen, `alt+f4`, `win+r` und Ähnliches) fragen in jedem Modus nach. Passwortfelder werden über `IsPassword` von UI Automation erkannt und standardmäßig abgelehnt.
|
|
171
|
+
|
|
172
|
+
## Sicherheitsmodell
|
|
173
|
+
|
|
174
|
+
- **Geteilte Eingabe** — gewöhnliche Benutzeraktivität ist erlaubt, während der Agent denkt, beobachtet oder sich vorbereitet. Während der tatsächlichen Betätigung weichen Tippen, Scrollen und Schaltflächen sofort; Zeigerbewegungen haben eine Verschiebungstoleranz von 16 Pixeln. Fortgesetzte Eingabe oder eine 2 Sekunden lang gehaltene Taste/Schaltfläche führt in das automatische Warten. Nach dem Loslassen und 3 Sekunden Ruhe muss der Agent das aktuelle Ziel prüfen und die ursprüngliche Aufgabe fortsetzen, ohne teilweise erfolgte Schreibvorgänge blind zu wiederholen. Ein sanfter hellgelber Randverlauf zeigt die menschliche Kontrolle an.
|
|
175
|
+
- **Manuelle Pause** — nur das physische `Ctrl+Esc` löst eine dauerhafte Eingabebremse aus; `Ctrl+Alt+R` setzt fort. Gewöhnliches Esc, Tippen, Scrollen, Zeigerdistanz/-frequenz und die Bildschirmecke erzeugen diese Pause nicht. Ausdrückliche Frage- und Diagnose-Haltezustände bleiben getrennt.
|
|
176
|
+
- **Beenden** — `Ctrl+Alt+Q` beendet die Sitzung: Das Overlay verschwindet, seine Listener werden abgebaut, und weitere Betätigungen werden abgelehnt, bis ein späterer Turn ein neues öffnet.
|
|
177
|
+
- **Die Bremse ist eine Tatsache über den Rechner, nicht über einen Prozess** — der aktivierte Zustand wird persistiert, und jeder Worker übernimmt ihn, auch ein später aus einer Shell gestarteter.
|
|
178
|
+
- **Audit** — jede Betätigung wird mit bereinigten Argumenten an `$DSH_HOME/data/computer-use/audit.jsonl` angehängt.
|
|
179
|
+
- **Kill-Switch für das Plugin selbst** — `DSH_COMPUTER_USE_KILL=1` lässt das Plugin den Start verweigern; `dryRun: true` simuliert Betätigungen und protokolliert sie nur.
|
|
180
|
+
|
|
181
|
+
## Konfiguration
|
|
182
|
+
|
|
183
|
+
| Schlüssel | Standard | Bedeutung |
|
|
184
|
+
|---|---:|---|
|
|
185
|
+
| `automationMode` | `standard` | Genehmigungsmodus (oben) |
|
|
186
|
+
| `progressiveTools` | `true` | Aktivierung pro Agent; `false` stellt die 19 Desktop-Tools global bereit |
|
|
187
|
+
| `actionFeedback` | `true` | nach direkten Aktionen und Batches automatisch beobachten |
|
|
188
|
+
| `actionFeedbackDetail` | `compact` | `compact`, `full` oder `none`; das `feedback` eines Aufrufs überschreibt diesen Standard; nicht zwischengespeicherte Belege fallen auf die vollständige Inline-Ausgabe zurück |
|
|
189
|
+
| `dryRun` | `false` | Betätigungen simulieren, nur protokollieren |
|
|
190
|
+
| `maxActionsPerMinute` | `60` | Ratenbegrenzung für Betätigungen auf Kernebene |
|
|
191
|
+
| `annotateMarks` | `true` | Set-of-Marks-Rahmen auf Screenshots zeichnen |
|
|
192
|
+
| `workerExe` | `""` | expliziter Worker-Pfad; leer = automatische Ermittlung oder Kompilieren |
|
|
193
|
+
| `snapshotDir` | `""` | Screenshot-Verzeichnis; leer = `$DSH_HOME/data/computer-use/shots` |
|
|
194
|
+
|
|
195
|
+
## MCP-Server
|
|
196
|
+
|
|
197
|
+
`mcp/` ist ein abhängigkeitsfreier MCP-stdio-Server über demselben Kern, für Clients, die MCP statt Cordis sprechen:
|
|
198
|
+
|
|
199
|
+
```sh
|
|
200
|
+
# published package (2.0.1 and later) — no checkout needed
|
|
201
|
+
npx -y dsh-codex-style-computer-use
|
|
202
|
+
|
|
203
|
+
# from a checkout
|
|
204
|
+
node mcp/src/index.js
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Der eingebettete Server meldet die Version dieses Root-Pakets. Er startet nur mit Beobachtung. Der startende Host kann `DSH_CU_ALLOW_INPUT=1` setzen, wenn er die Autorisierung für Desktop-Aktionen besitzt; MCP-Toolaufrufe können Eingaben nicht aktivieren. Das Kompatibilitätstool `cu_approve` meldet nur diese Regel und erteilt nie eine Zustimmung. Die `automationMode`-Richtlinie von DSH gehört zum Cordis-Adapter und ist kein MCP-Genehmigungsdienst. `DSH_CU_DRY_RUN=1` simuliert Eingaben, die der Host bereits aktiviert hat.
|
|
208
|
+
|
|
209
|
+
Beide Adapter verwenden dieselbe Grammatik für Tastenbefehle, dieselben Regeln für Batch-Fehler und Fortsetzung und dieselbe Zuordnung von Bildkoordinaten. MCP gibt strukturierte Aufnahme-Metadaten und ein aktuelles PNG/JPEG-Bild zurück, ohne Bildbytes in JSON-Text zu serialisieren. `cu_hold` / `cu_free` reservieren oder geben die Szene zwischen Aktionen frei; `cu_release` beendet den Desktop-Zyklus. `cu_drag` akzeptiert `expectCursor`- und `hwnd`-Prüfungen. MCP bietet eine kleinere Tool-Oberfläche; die DSH-spezifische Integration von Menschenfragen und Host-Lebenszyklus wird vom Cordis-Adapter bereitgestellt.
|
|
210
|
+
|
|
211
|
+
## Entwicklung
|
|
212
|
+
|
|
213
|
+
Release-Prüfungen des Publishers verwenden standardmäßig die offizielle Registry von npm. Wenn dieser Ursprung in Ihrem Netzwerk nicht erreichbar ist, wählt `CU_REGISTRY` einen expliziten Spiegel für den schreibgeschützten Befehl `check`; das JSON-Ergebnis enthält `registry` und `authoritative`. Beispiel in PowerShell (ändert nur die aktuelle Shell):
|
|
214
|
+
|
|
215
|
+
```powershell
|
|
216
|
+
$env:CU_REGISTRY = 'https://registry.npmmirror.com'
|
|
217
|
+
node scripts/release-channel.mjs check 1.2.0
|
|
218
|
+
Remove-Item Env:CU_REGISTRY
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Exit-Code `0` bedeutet, dass die Version die 24-Stunden-Publisher-Prüfung bestanden hat, `2` bedeutet, dass sie noch abkühlt, und `1` bedeutet, dass die Prüfung fehlgeschlagen ist. Ein Netzwerkfehler belegt nicht, dass ein Paket unveröffentlicht ist, und Spiegel können hinterherhinken. `promote` prüft immer erneut und schreibt `https://registry.npmjs.org`, wobei `CU_REGISTRY` ignoriert wird; es benötigt Zugriff auf diesen Ursprung und nutzt bei Bedarf die Proxy-Konfiguration von npm. Dieses Publisher-Tool ist nicht Teil der Endbenutzerinstallation. Siehe [das Release-Verfahren](docs/RELEASE-1.2.0.md).
|
|
222
|
+
|
|
223
|
+
Das Repository enthält die Guard-Suite, die die oben genannten Invarianten schützt — die Lebensdauer des Zyklus, das Frage-/Bremsprotokoll, die Klassifizierung der Vorgänge, das Skill-Gate und die Verdrahtung des mitgelieferten Skills:
|
|
224
|
+
|
|
225
|
+
```sh
|
|
226
|
+
pwsh -NoProfile -ExecutionPolicy Bypass -File build/run-guards.ps1 # all guards
|
|
227
|
+
node build/verify-tools-schema.mjs # tool-schema load guard
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Die Tooldefinitionen werden durch die echte `@deepseek-ai/dsh-tools`-DSL kompiliert, sodass ein Schemafehler hier fehlschlägt, statt beim Neustart den Plugin-Baum des Hosts lahmzulegen. Einige Guards kompilieren den nativen Worker und laufen nur unter Windows.
|
|
231
|
+
|
|
232
|
+
## Lizenz
|
|
233
|
+
|
|
234
|
+
MIT — siehe [LICENSE](LICENSE).
|