الوثائق
واجهة مستخدم سطح المكتب
مساحات عمل SolidJS، وعميل API محلي، وTauri Shell الذي يمتلك التكامل الأصلي.
مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية
بنية التطبيق
يجمع تطبيق سطح المكتب بين عرض ويب SolidJS وVite وThree.js وTauri v2 Rust shell. يمتلك عرض الويب الشاشات وحالة التفاعل. يمتلك Bun Sidecar معالجات واجهة برمجة التطبيقات (API)، والوصول إلى قاعدة البيانات، وجلسات الذكاء الاصطناعي، وخدمات المشروع. تمتلك عملية Rust النافذة والقوائم والدرج ومربعات حوار نظام التشغيل والوصول إلى سلسلة المفاتيح والتحديثات ودورة حياة السايدكار.
apps/desktop/src/main.tsx يتصاعد التطبيق. app/App.tsx ينشئ اتصال API ويوفر الحالة المشتركة؛ app/routes.tsx يعين عناوين URL لوحدات الصفحة البطيئة. شاشات مميزة تعيش في features/. لا يشير وجود المسار إلى توفر خدماته الخارجية: تحتاج الفوترة إلى تكوين Stripe ويحتاج الذكاء الاصطناعي إلى موفر مهيأ.
بدء التشغيل واستعادة الاتصال
- يبدأ Shell السايدكار المجمعة باستخدام رمز الإطلاق المميز وبيانات التطبيق وأدلة الترحيل.
- يربط السايدكار منفذًا سريع الزوال
127.0.0.1، ينتظر إجابة المسار الصحي الخاص به، ويكتب JSONreadyالحدث الذي يحتوي على المنفذ. - يستدعي عرض الويب
get_sidecar_endpointويقوم بإنشاء عميل واجهة برمجة التطبيقات (API) ووقت تشغيل التأثير المُدار. - يؤدي طلب السلامة الناجح إلى إنشاء حالة التطبيق وتثبيت جهاز التوجيه والقشرة.
يتيح عرض الويب 150 ثانية لاستعادة الاتصال، مع مهلة تبلغ 30 ثانية لكل محاولة وإيقاف مؤقت لإعادة المحاولة يبلغ 750 ملي ثانية. تتجاهل المحاولات الفاشلة نقطة النهاية المخزنة مؤقتًا حتى يتمكن السايدكار المعاد تشغيله من توفير منفذ جديد. ينتظر مشرف Rust 60 ثانية لكل مصافحة جاهزة ويسمح بإعادة التشغيل التلقائي مرة واحدة. تصبح إعادة المحاولة متاحة عندما تنتهي ميزانية اتصال عرض الويب.
تستخدم معاينة المتصفح واجهة برمجة تطبيقات في الذاكرة
خارج Tauri، متصفح بدون VITE_SIDECAR_URL الاستخدامات src/testing/fake-api.ts. تكون بيانات المعاينة محلية للصفحة الجاري تشغيلها؛ المجموعات غير المدعومة ترجع HTTP 501. لتوصيل متصفح بسايدكار حقيقية، قم بتوفير كليهما VITE_SIDECAR_URL و VITE_SIDECAR_TOKEN عند بدء فيت.
طرق الشاشة
| منطقة | الطرق والوحدات |
|---|---|
| المشاريع | /projects, /projects/create, /projects/:id، و /projects/:id/history; شاشات في features/projects/screens. |
| التصميم والتصنيع | /cad يتصاعد CadPage; /cam يتصاعد CamPage. تحتوي الرسومات المحفوظة ومسارات الأدوات على مسارات تفصيلية منفصلة. |
| موارد | /library, /materials, /tools, /machine، وتستخدم صفحات التفاصيل الخاصة بها وحدات ميزات المكتبة. تحتوي المكونات على طرق القائمة والتفاصيل. |
| مساعد | /ai وتشارك لوحة المساعد الراسية حالة ميزة الذكاء الاصطناعي. يقوم نشاط الذكاء الاصطناعي بتبديل اللوحة. |
| إعدادات | /settings, /settings/companionوإعدادات MCP وإعدادات الاشتراك. |
| الحساب والتعاون | تقوم كل من المصادقة والملف الشخصي والمؤسسة والدعوة والدردشة والسوق والمكون الإضافي والتكاليف والتحليلات والإدارة بتوجيه وحدات ميزات التحميل. |
يستخدم app/routes.tsx لأسماء المعلمات الدقيقة و pages/ لتحديد موقع الشاشة المثبتة على عنوان URL. محولات التوجيه صغيرة عن قصد؛ قراءة الشاشة واستدعاءات API الخاصة بها عند تشخيص عرض فارغ أو إجراء فاشل.
منظمة المصدر
app/: بدء التشغيل، جهاز التوجيه، عميل API العالمي، التكامل الأصلي، الصدفة، واختصارات لوحة المفاتيح.pages/: محولات الطريق استيراد أو إعادة تصدير الشاشات.features/: مناطق المنتج التي تحتوي على الشاشات والمكونات والخطافات والحالة والمساعدين الخاصين بالمجال.shared/: عناصر التحكم القابلة لإعادة الاستخدام، ومكونات الصدفة، وحالة التطبيق، والتخزين المؤقت للاستعلام، وسجل الأوامر.viewport/: رسم القماش، والالتقاط، وإيماءات الأداة، وعرض Three.js، والربط، والتشغيل.i18n/,styles/، وtesting/: الترجمات، والأنماط العالمية، وتركيبات الاختبار.
سطح المكتب يعتمد على @cadcamfun/api لعقد HTTP وعلى @cadcamfun/core لعمليات الهندسة وCAM. يظل استمرار قاعدة البيانات خلف واجهة برمجة تطبيقات السايدكار. يختلف سجل المحرر المحلي عن إصدارات الرسم المستمر أو مسار الأدوات وعن التحكم في إصدار المشروع.
قذيفة أصلية
نافذة الإنتاج هي 1440 × 900 بشكل افتراضي، بحد أدنى 960 × 600. يقوم Tauri بمراحل الواجهة الأمامية من apps/desktop/dist، سايدكار خاصة بالهدف من src-tauri/binaries، وولدت الهجرات كموارد. فإنه يسجل .cadcam, .nc، و .gcode جمعيات الملفات. يؤدي فتح ملف مدعوم أو تشغيل مثيل ثانٍ إلى إعادة توجيه مسارات الملفات إلى النافذة الحالية.
src-tauri/src/sidecar.rs يشرف على عملية الطفل. إغلاق التطبيق يكتب أ {"event":"shutdown"} خط إلى stdin الطفل وينتظر لفترة وجيزة قبل جني ذلك؛ يلاحظ الطفل أيضًا إغلاق stdin. رمز الإطلاق المميز هو 32 بايت عشوائي، مشفر سداسي عشري كأحرف 64، ويتم تنقيح سطور سجل السايدكار التي قد تحتوي على بيانات اعتماد. السجلات منفصلة عن stdout، الذي يحمل تأكيد الاتصال للجاهزية/الخطأ. يتم الوصول إلى الأسرار الأصلية من خلال src-tauri/src/secrets.rs باستخدام سلسلة مفاتيح نظام التشغيل.
في نظام التشغيل macOS، يقوم الغلاف بتسجيل المكون الإضافي Liquid Glass. يتبع عرض الويب إعداد الزجاج ويتراجع عندما يكون التأثير غير متاح. يقوم تكوين متجر التطبيقات بتعطيل خيار واجهة برمجة التطبيقات الخاصة؛ التكوين العادي يتيح ذلك. هذه تكوينات بناء منفصلة.
حدود الأمن والثبات
تسمح سياسة محتوى الإنتاج بالأصول المحلية واتصالات API الاسترجاعية وصور البيانات/الكائنات الثنائية الكبيرة وتقييم WebAssembly. لا يمنح تنفيذ البرنامج النصي عن بعد التعسفي. يتم تحديد نطاق الأذونات الأصلية في src-tauri/capabilities; تسمح سياسة التطوير أيضًا بـ Vite ومقبس الويب الخاص به.
open_path تحديد المسارات بشكل متعارف عليه، وتقييدها بأدلة المستخدم/التطبيق المسموح بها، ورفض الامتدادات القابلة للتنفيذ مثل .exe, .app, .sh, .bat, .msi، و .jar. .. لا يمكن للمقاطع والارتباطات الرمزية الهروب من المجلدات المسموح بها لأن كلا الجانبين متعارف عليهما. انتقاء الملفات وحفظها يستخدم مربعات الحوار الأصلية والتحقق من صحتها. يمنح رمز الإطلاق إمكانية الوصول إلى واجهة برمجة تطبيقات التطبيق المحلي؛ تعامل معه بشكل منفصل عن الرمز المميز المصاحب أو رمز جسر الذكاء الاصطناعي على نطاق المشروع.
إعدادات واجهة المستخدم وحالة استعلام واجهة برمجة التطبيقات وأوامر المحرر وإصدارات المشروع المخزنة والأسرار الأصلية لها مالكون مختلفون. قم بتشخيص كل منها من خلال خدمتها الفعلية بدلاً من افتراض أن حالة التطبيق بأكملها مخزنة في SQLite.
تكامل الميزة
تقوم وحدات ميزات CAD وCAM بتكوين مكونات إطار عرض قابلة لإعادة الاستخدام مع لوحاتها الخاصة ومخازنها وتدفقات الحفظ. تتلقى اللوحة المساعدة سياق المشروع والمحرر وأحداث أداة التدفق من خلال حالة ميزة الذكاء الاصطناعي. تستخدم شاشات الموارد عميل API بدلاً من الوصول مباشرة إلى قاعدة البيانات.
لتغيير واجهة المستخدم، اتبع محول المسار إلى شاشة الميزات الخاصة به، ثم افحص مخزن الميزات أو الخطاف الذي يرسل الطلب. أعد استخدام المكونات المشتركة فقط عندما يتطابق عقدها الحالي مع التفاعل. احتفظ بالهندسة النقية في الحزمة الأساسية وسلوك نظام التشغيل الأصلي في Rust Shell.
تحميل الطريق والأخطاء
يستخدم كل مسار حدود الاستيراد البطيئة الخاصة بـ Solid. يتضمن الجدول صفحة شاملة، /500, /offline، والطرق القانونية. يجب تقديم التنقل المباشر للمتصفح من خلال خادم تطوير Vite أو عرض الويب المعبأ حتى يتمكن جهاز توجيه العميل من حل عنوان URL.
تنفذ واجهة برمجة تطبيقات المعاينة مجموعة محدودة من المجموعات ويمكنها إدخال حالات فشل الطلب عمدًا في الاختبارات. يوضح عرض المعاينة الناجح سلوك واجهة المستخدم مقابل تلك التركيبات؛ تحقق من الثبات والأذونات والبث والتكامل الخارجي مع العرض السايدكار المباشر.
واجهة الأوامر الأصلية
| يأمر | غاية |
|---|---|
get_sidecar_endpoint | انتظر السايدكار الخاضعة للإشراف وأعد عنوان URL الأساسي ورمز الإطلاق المميز. يغطي الانتظار عملية إعادة تشغيل واحدة: مهلة جاهزة مدتها 60 ثانية بالإضافة إلى 5 ثانية (125 ثانية). |
get_logs_dir, open_path | قم بحل دليل سجل التطبيق كسلسلة، وافتح المسار المطلق الموجود باستخدام أداة فتح نظام التشغيل. يجب أن يتم حل المسارات ضمن بيانات التطبيق أو السجل أو المستندات أو التنزيلات أو مجلد سطح المكتب. |
secret_get, secret_set, secret_delete | قم بالوصول إلى إدخالات سلسلة المفاتيح الأصلية ضمن com.cadcamfun.app خدمة. المفاتيح هي 1–128 بايت من أحرف ASCII وأرقامها و . _ - : (على سبيل المثال ai.anthropic.apiKey); secret_get يعود null لإدخال مفقود. |
pick_file, save_file | pick_file({ filters: [{ name, extensions }] }) إرجاع المسار المختار أو null على الإلغاء. save_file({ defaultName, contents }) يكتب نص UTF-8 إلى المسار المختار ويعيده، أو null عند الإلغاء؛ تم رفض الدلائل والملحقات القابلة للتنفيذ. |
set_recent_projects | قم بتحديث قائمة المشروعات الحديثة في الدرج. |
check_for_updates, install_update | اطلب التحقق من التحديث، أو قم بتثبيت تحديث معلق. install_update يقبل اختياري unsavedWork العلم (الافتراضي false) لذلك لا يؤدي التثبيت إلى مقاطعة المحرر المفتوح. |
The invoke handler is registered in src-tauri/src/lib.rs. Capabilities and generated command permissions also control availability; command registration alone does not establish webview access. Command errors are serialized as { kind, message } with kinds such as sidecar, invalid_path, io, dialog, and path; no command panics.
الأحداث الأصلية
تنبعث القشرة sidecar-status لتغييرات دورة الحياة، open-file مع المسارات المدعومة، menu لاختيار القائمة، و update://status لتقدم المحدث. يتم تمثيل تحديدات المشروع الأخير في الدرج بواسطة tray.recent.<projectId> معرفات القائمة. تحدد وحدات القائمة والدرج الخاصة بالصدفة مجموعات المعرفات الكاملة الخاصة بها.
يجب أن يتم تحديد نطاق المستمعين وفقًا لدورة حياة المكون أو التطبيق الخاص بهم وإزالتهم عند التنظيف. يجب أن يعيد عرض الويب حل نقطة النهاية بعد إعادة تشغيل السايدكار بدلاً من الاستمرار في استخدام المنفذ السابق.
التطوير والتحقق
bun run --filter @cadcamfun/desktop dev
bun run desktop:dev
bun run --filter @cadcamfun/desktop typecheck
bun test apps/desktop/src
bun run build:desktop يقوم الأمر الأول بتشغيل معاينة المتصفح. desktop:dev يقوم بتجميع السايدكار الحقيقية ومراحل الهجرات قبل بدء Tauri. حزمة سطح المكتب tauri:dev يقوم البرنامج النصي بدلاً من ذلك بإنشاء كعب روتين ثنائي فقط في حالة عدم وجود ثنائي؛ استخدمه في عمل الصدفة المعزول وتحقق من الثنائي الموجود قبل تفسير استجابات واجهة برمجة التطبيقات (API) الخاصة به.
سطح المكتب build يعمل البرنامج النصي vite build فقط؛ فهو لا يجمع السايدكار أو يحزم حزمة Tauri. يستخدم bun scripts/build.ts للحصول على خط أنابيب الإصدار الكامل (انظر يطلق).
التفضيلات والإعدادات
يحتفظ مخزن الإعدادات المشتركة بسجل تم التحقق من صحته ضمن cadcamfun.settings في التخزين المحلي لعرض الويب. تتراجع الحقول المفقودة أو غير الصالحة أو غير القابلة للقراءة بشكل مستقل. لا تتوقف منطقة التخزين الممتلئة أو المحظورة عن التحرير، ولكن قد تفشل تغييرات التفضيلات في الاستمرار. تنتمي تفضيلات معاينة المتصفح إلى أصل المتصفح وهي منفصلة عن تفضيلات عرض الويب الأصلية.
| جلسة | القيم المقبولة/الافتراضية | التأثير التشغيلي |
|---|---|---|
| سمة | light, dark, system; النظام الافتراضي | يتبع وضع النظام تغييرات نظام ألوان نظام التشغيل. |
| وحدات العرض | mm أو in; ملم الافتراضي | ضوابط العرض. إحداثيات الرسم الأساسية تبقى ملليمترات. |
| الكسور العشرية | عدد صحيح 0–6; الافتراضي 3 | دقة عرض الطول. |
| المشاركة الافتراضية | grbl, linuxcnc, smoothwb, gcode, fanuc; grbl الافتراضي | تعتبر القواعد النحوية المحددة للمخرجات بمثابة تفضيل، وليست دليلاً على تكوين الجهاز أو التحقق منه. |
| رسم التسامح | التحقق من صحة التسامح الأساسية. الافتراضي 0.01 ملم | تفضيل الدقة المشترك الذي يستخدمه مستهلكو الرسم/مسار الأدوات. |
| حالة المفاجئة | منطقية؛ تم تمكينه بشكل افتراضي | تفضيلات الحالة المشتركة. يمتلك المحررون الفرديون سلوكهم الخاطف؛ المستقل Editor2D يتيح حاليًا إمكانية التقاط شبكته داخليًا. |
| زجاج | منطقية؛ تم تمكينه بشكل افتراضي | يطلب مواد نافذة macOS عندما يدعمها المضيف الأصلي. |
تحتوي شاشة الإعدادات على علامات التبويب الملف الشخصي والحساب والأمان والاشتراك والإشعارات والذكاء الاصطناعي والأجهزة واللغة. تتضمن علامة التبويب "الأجهزة" لوحة البوابة المصاحبة. تتضمن إعدادات اللغة زر التبديل الزجاجي. يقوم مخزن اللغة العام حاليًا بالتحقق من صحة اللغة الافتراضية؛ لا تستنتج تغطية ترجمة إضافية من قائمة تسميات العرض.
حفظ وإعادة فتح برنامج CAM
- قم بإنشاء أو تحميل رمز NC في CAM وافتح مربع حوار الحفظ/التصدير من نقطة الإدخال الحالية.
- لتصدير ملف، اختر G-code أو تنسيق مسار الأدوات المحمول. يقوم G-code بتنزيل نص NC الحالي؛ يقوم اختيار مسار الأدوات بكتابة ملف منظم
.cam.jsonلقطة. - لاستمرارية التطبيق، اختر مشروعًا موجودًا أو مشروعًا جديدًا أو قم بتحديث البرنامج المحفوظ بالفعل. قم بتوفير اسم البرنامج وحقول الوجهة المطلوبة.
- عند التحديث، يسجل تدفق الحفظ البرنامج الكامل السابق كإصدار مسار الأدوات قبل استبدال البيانات الحالية.
- افتح العنصر المحفوظ في مسار تفاصيل مسار الأدوات الخاص به لفحص الإصدارات أو استعادتها.
يتضمن ملخص الحفظ خطوط NC، والبايتات، والتحركات، ومعرفات الأدوات، وأسماء العمليات، والمخزون، والوحدات، وإزاحة العمل، وهوية التحقق عندما ينتمي هذا الدليل إلى NC الحالي. يمكن لنص NC المعدل أن يجعل الأدلة المحسوبة مسبقًا قديمة. قم بمراجعة العلاقة الحالية بين الكود/الدليل قبل الاعتماد على الملخص.
إذا نجح إنشاء مشروع جديد ولكن فشلت خطوة الحفظ اللاحقة، فسيحتفظ المشروط بالوجهة التي تم إنشاؤها لإعادة المحاولة ويتضمن معرفه في الخطأ. تؤدي إعادة المحاولة ضمن هذا الشرط إلى تجنب إنشاء نفس المشروع مرة أخرى. لا تفترض أن تدفق الحفظ عبارة عن معاملة ذرية واحدة عبر الموارد.
تصدير الملفات واستمرارية المشروع هما عمليتان مختلفتان
لا يقوم ملف G-code الذي تم تنزيله بإنشاء صف مسار أدوات المشروع. تحمل اللقطة المحمولة حالة أكثر ثراءً من NC العادي. تحقق من البرنامج المحفوظ عن طريق إعادة فتحه من التطبيق، وتحقق من التصدير عن طريق فحص الملف الذي تم تنزيله.
لوحة المفاتيح وتشخيص الأعطال
Cmd/Ctrl+K يفتح لوحة الأوامر و Cmd/Ctrl+J تبديل لوحة المساعد. يتم تجاهل اختصارات Shell عندما يكون التركيز على عنصر إدخال أو منطقة نص أو تحديد أو عنصر قابل للتحرير. تتمتع لوحات المحرر بمعالجة لوحة المفاتيح الخاصة بها. العديد من عمليات الاسترجاعات لأوامر shell، بما في ذلك الحفظ/التصدير في جدول الاختصارات العام، هي عناصر نائبة؛ استخدم عناصر التحكم في الحفظ/التصدير الفعلية للميزة بدلاً من افتراض أن كل مُسرّع مدرج يقوم بإجراء عملية مستند.
| السلوك الملاحظ | يفحص |
|---|---|
| ينتظر بدء التشغيل، ثم تظهر إعادة المحاولة | خطأ Sidecar/الإخراج الجاهز، والهدف الثنائي، وموارد الترحيل، وسجلات التطبيق. قد ينتمي المنفذ المخزن مؤقتًا إلى عملية سابقة. |
| يتم عرض الشاشة ولكن الطلبات ترجع 501 | وضع تثبيت المتصفح. ابدأ تشغيل السايدكار الحقيقية وقم بتمرير متغيرات نقطة نهاية Vite. |
| تختلف بيانات سطح المكتب عن البرنامج النصي اليدوي | دليل البيانات والرمز المميز لكل عملية؛ اسم الملف وحده لا يحدد قاعدة البيانات. |
| الأمر الأصلي غير متوفر | استدعاء التسجيل وأذونات القدرة ودعم نظام التشغيل وما إذا كان الرمز يعمل داخل Tauri. |
| تعود الإعدادات بعد إعادة التشغيل | توافر التخزين والتحقق من صحتها. الحقول المخزنة غير الصالحة تعود إلى الإعدادات الافتراضية. |
| يختلف دليل البرنامج المحفوظ عن NC | ما إذا كان قد تم تحرير NC بعد الجيل. أعد حساب التحقق المناسب للنص/البرنامج الفعلي. |
مراسي التنفيذ: shared/state/settings.ts, app/shortcuts.ts, features/settings/screens/settings.tsx، و features/cam/components/SaveCamModal.tsx.
حمولات الأحداث الأصلية
| حدث | الحمولة | ملحوظات |
|---|---|---|
sidecar-status | { state: "starting" }, { state: "ready", port }, { state: "restarting" }, { state: "failed", message } | بعد restarting، يتصل get_sidecar_endpoint مرة أخرى؛ يتغير المنفذ. |
update://status | status: checking, upToDate (version), available (version, notes, date, critical), downloading (downloaded, total), ready (version), failed (message); زائد dismissible | لا يمكن رفض التحديث المهم وإعادة التشغيل المعلقة. لا يتم عرض عملية التحقق الفاشلة أبدًا كخطأ حظر. |
menu | معرف عنصر القائمة، مثل file.new, file.open, file.save, view.devtools, help.documentation | استخدام عناصر الدرج tray.quit و tray.recent.<projectId>. |
open-file | مسارات .cadcam, .nc، أو .gcode ملفات | يتم إرساله عندما يفتح نظام التشغيل ملفًا باستخدام التطبيق أو يتم تشغيل مثيل ثانٍ. |
install_update يمكن رفضه لسبب مكتوب: unsavedWork ("المحرر لديه عمل غير محفوظ؛ قم بتطبيق التحديث بمجرد حفظه")، noneAvailable (لا يوجد شيء معلق، أو مثبت بالفعل)، أو failed (فشل التنزيل أو التحقق من التوقيع). يقوم بتثبيت التحديث الذي أعلنه الفحص الأخير فقط.
import { invoke } from "@tauri-apps/api/core"
import { listen } from "@tauri-apps/api/event"
const { baseUrl, token } = await invoke<{ baseUrl: string; token: string }>("get_sidecar_endpoint")
const path = await invoke<string | null>("pick_file", {
filters: [{ name: "G-code", extensions: ["nc", "gcode"] }],
}) // null when the user cancels
await invoke("save_file", { defaultName: "part.nc", contents: gcodeText })
const unlisten = await listen<{ state: string; port?: number }>("sidecar-status", (e) => {
if (e.payload.state === "ready") reconnect()
})
// later: unlisten()
try {
await invoke("install_update", { unsavedWork: editorIsDirty })
} catch (error) {
// { kind, message }: the update variant carries the refusal (unsavedWork | noneAvailable | failed)
} get_sidecar_endpoint يعود { baseUrl, token } (متسلسل في حالة الجمل من SidecarEndpoint). تصل الأخطاء من كل أمر كقيمة مرفوضة لـ invoke، على شكل { kind, message }.
اختصارات لوحة المفاتيح
| الاختصار | فعل | مجموعة |
|---|---|---|
Cmd/Ctrl+K | افتح لوحة الأوامر | ملاحة |
Cmd/Ctrl+Shift+P | مشروع جديد | ملاحة |
Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z | التراجع / الإعادة | يحرر |
Cmd/Ctrl+S, Cmd/Ctrl+Shift+E | الحفظ والتصدير (العناصر النائبة للصدفة؛ استخدم عناصر التحكم الخاصة بالميزة) | يحرر |
Cmd/Ctrl+0 | تكبير لتناسب | منظر |
Cmd/Ctrl+= / Cmd/Ctrl+- | تكبير / تصغير | منظر |
Cmd/Ctrl+J | تبديل لوحة المساعد | بالنيابة |
Cmd ينطبق على نظام التشغيل MacOS و Ctrl في مكان آخر. معرف كل اختصار هو أيضًا لاحقة مفتاح الترجمة الخاصة به (على سبيل المثال settings.shortcut.palette)، وتعرض شاشة الإعدادات نفس الجدول، لذلك لا يمكن أن تتباعد الوثائق والتطبيق عن بعضهما البعض.
كل طريق الشاشة
جهاز التوجيه في apps/desktop/src/app/routes.tsx يعلن عن 68 مسارات، تم تحميل كل منها بتكاسل منها apps/desktop/src/pages/ (القطاعات الديناميكية هي _id_.tsx الملفات). مجمعة حسب الجزء الأول:
| منطقة | الطرق |
|---|---|
* | * |
500 | /500 |
admin | /admin/analytics /admin/feature-flags |
ai | /ai |
analytics | /analytics/history /analytics |
auth | /auth/forgot-password /auth/magic-link /auth/magic-link/verify /auth/reset-password /auth/signin /auth/signup /auth/two-factor /auth/verify-email /auth/verify |
cad | /cad |
cam | /cam |
costs | /costs |
components | /components/:id /components |
drawings | /drawings/:id |
/ | / |
invitations | /invitations/:token |
legal | /legal/privacy /legal/terms /legal/third-party-licenses |
library | /library |
machine | /machine/:id /machine |
marketplace | /marketplace /marketplace/items/:id /marketplace/purchase/success /marketplace/purchases /marketplace/seller/dashboard |
materials | /materials/:id /materials |
mcp | /mcp/directory /mcp/servers/:id |
offline | /offline |
organizations | /organizations/:id /organizations/:id/chat/:conversationId /organizations/:id/chat /organizations/:id/chat/new-group /organizations/:id/chat/new /organizations/create /organizations |
plugins | /plugins/:id /plugins |
pricing | /pricing |
profile | /profile /profile/settings |
projects | /projects/:id/history /projects/:id /projects/create /projects |
settings | /settings /settings/companion /settings/mcp/config-editor /settings/mcp/edit/:id /settings/mcp /settings/subscription |
third-party-licenses | /third-party-licenses |
toolpaths | /toolpaths/:id /toolpaths |
tools | /tools/:id /tools |
waitlist | /waitlist |
* يعرض الصفحة 404 و /500 صفحة الخطأ. /offline يعرض الشاشة غير المتصلة بالإنترنت؛ مثل صفحات المصادقة والدعوة و404 و500 وصفحات نجاح الشراء، فإنها تستخدم التخطيط المستقل بدون تطبيق chrome. نظرًا لأن كل صفحة يتم استيرادها ببطء، فلا يتم تحميل رمز الشاشة إلا عند الزيارة الأولى؛ تظهر فشل عملية تحميل القطعة كخطأ في المسار، وليس كتطبيق فارغ.