تخطَّ إلى المحتوى
CADCAMFUN
الوثائق

الوثائق

بنيان

حدود التنفيذ وتدفق الطلب والاستمرارية ونقاط الامتداد عبر سطح المكتب والسايدكار والرفيق المحمول وموقع التوثيق.

مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية

العمليات وحدود الثقة

تمتلك Tauri تكامل النوافذ الأصلي وأوامر بيانات الاعتماد الآمنة والقوائم والتحديثات ودورة حياة السايدكار. يقوم عرض الويب الخاص به بتشغيل تطبيق SolidJS. يفتح Bun Sidecar المترجم قاعدة البيانات ويخدم HTTP 127.0.0.1 مع منفذ مخصص لنظام التشغيل. الواجهة الأمامية لا تفتح SQLite.

نقطة دخول السايدكار هي apps/sidecar/src/main.ts. يقوم بإنشاء خادم HTTP، وبناء طبقات التطبيق، والتحقيقات /api/health، ثم يطبع حدث جاهزية JSON الذي يحتوي على المنفذ المختار. يتم توجيه السجلات إلى stderr بحيث يظل stdout متاحًا لبروتوكول Shell.

يصل الرفيق المحمول إلى بوابة سطح المكتب المقترنة بشكل صريح. تكون بيانات اعتماد النقل والجهاز الأصلية الخاصة به منفصلة عن اتصال الاسترجاع الخاص بعرض الويب لسطح المكتب. يعد عامل التوثيق عملية نشر منفصلة وليس له أي اتصال ضمني بسطح مكتب المستخدم.

تبعيات المكتبة

@cadcamfun/core يحتوي على CAD، والرسم، وحساب CAM. يعتمد ذلك على تأثير المخططات وتكامل الحدود؛ الحلقات الخوارزمية هي TypeScript عادية. @cadcamfun/api يستورد الأنواع والمخططات الأساسية للإعلان عن مدخلات ومخرجات وأخطاء وتدفقات HTTP.

@cadcamfun/db يمتلك خدمة قاعدة بيانات التطبيق والمخطط ومنطق الترحيل. يجمعها Sidecar مع الحزم الأساسية وAPI وAI وSDK وVCS وحزم سير العمل. تستخدم مستودعاتها خدمة قاعدة البيانات؛ تفويض المعالجات إلى المستودعات والخدمات.

يقوم سطح المكتب باستيراد كليهما @cadcamfun/api و @cadcamfun/core. ويستخدم واجهة برمجة التطبيقات في وقت التشغيل من خلال عميل Effect ويستخدم الهندسة الأساسية في ميزات CAD/CAM وإطار العرض. يعتمد الهاتف المحمول على حزمة API ويغلف الطلبات المصاحبة في عميله. يكتشف المكون الإضافي nikcli المستقل كتالوج إجراءات التطبيق قيد التشغيل عبر HTTP بدلاً من استيراد تطبيقات الواجهة الخلفية.

دورة حياة طلب HTTP

  1. يحصل عرض الويب على اتصال السايدكار من الغلاف الأصلي.
  2. apps/desktop/src/app/client.ts ينشئ عميل Effect HttpApi بتفويض لحامله ورمز مميز اختياري لجلسة الحساب. packages/api/src/client.ts يوفر عميل عقد قابل لإعادة الاستخدام للمستهلكين الآخرين.
  3. apps/sidecar/src/layers.ts يجمع ServedApiوالمعالجات والترخيص وCORS وطبقات الخدمة المشتركة.
  4. يقوم المعالج بالتحقق من صحة مدخلات العقد، وحل الخدمات، وإجراء العمليات الحسابية أو المثابرة، وإرجاع النجاح المعلن أو تمثيل الخطأ. تحافظ نقاط النهاية المتدفقة على بروتوكول الدفق المُعلن عنه.

يسمح CORS بأصول إنتاج Tauri وأصول استرجاع HTTP المستخدمة في التطوير. ولا يحل محل الترخيص. تكشف واجهة برمجة التطبيقات (API) عن العديد من أنماط مغلفات الاستجابة؛ يجب على المستهلكين اتباع مخطط كل نقطة نهاية بدلاً من افتراض أن كل استجابة لها نفس الشكل.

دورة حياة الخدمة والتخزين

تحصل طبقات التأثير على قاعدة البيانات والخدمات المشتركة ضمن نطاق التطبيق. تقوم طبقة قاعدة البيانات بإنشاء الدليل الأصلي الخاص بها، وتمكين WAL والمفاتيح الخارجية، وتطبيق عمليات الترحيل بشكل اختياري، وتغليف فشل الاستعلام باسم العملية. تحاول عملية الإنهاء اقتطاع نقطة تفتيش WAL وإغلاق مقبض SQLite.

ال DatabaseLive طبقة تختار dataDir/cadcamfun.db. يجب توفير مجلد الترحيل لتطبيق عمليات الترحيل عند بدء التشغيل. تتم معالجة بيانات اعتماد الذكاء الاصطناعي وحالة البرنامج المساعد وكائنات VCS وتنفيذ سير العمل وتخزين الملفات من خلال واجهات الخدمة الخاصة بها؛ يتم وصف تفاصيل التخزين في صفحات الوحدة النمطية الخاصة بهم.

الاستوديو المحلي في packages/web/script/studio-server.ts هي عملية Bun إضافية. فهو يفتح قاعدة بيانات التطبيق الموجودة والتي تم تكوينها مباشرة ويقدم بيانات عامة موثقة على منفذ الاسترجاع 4396. تعد جلسات وكيل التطوير وملفات تعريف الارتباط الخاصة بها مستقلة عن اتصال Tauri Sidecar.

يتم نشر أحداث المشروع المباشرة (طلبات السحب، والالتزامات، وعمليات سير العمل، ومراحل جلسة العمل المساعدة) من خلال خدمة الأحداث قيد التشغيل. يتلقى المشترك الجديد أولاً ما يصل إلى 20 من الأحداث المطابقة الأخيرة ثم الأحداث المباشرة، والتي تتم تصفيتها اختياريًا حسب نوع المشروع والحدث (apps/sidecar/src/services/live-events.ts).

حدود الامتداد

هناك نوعان من تكاملات البرنامج المساعد. يحدد البرنامج المساعد للتطبيق SDK البيانات والإمكانيات والتنشيط وعقود المضيف. يعرض جسر nikcli إجراءات CAD/CAM المسجلة لمساعد خارجي. يعد تثبيت مكون إضافي من خلال مسار تسجيل HTTP عملية منفصلة عن تنشيط الوحدة النمطية في مضيف وقت التشغيل.

تحليل سير العمل وجدولة العيش في packages/workflow. يتم تسجيل الخطوات المدعومة بالخدمة بواسطة طبقات السايدكار، بينما يمكن تشغيل خطوات المشروع وCAM النقية باستخدام المدخلات المتوفرة. يحسب VCS تجزئات الكائنات، والفرق، والدمج، وعمليات نقل GitHub في مكتبته؛ تربط خدمات Sidecar هذه العمليات باستمرارية المشروع.

يقوم مساعد توثيق الويب باسترداد الوثائق المقدمة ويمكنه نشر عناصر الدليل عند تكوين التخزين. يجيب على أسئلة التوثيق. ولا يرث الوصول إلى المشروع المحلي لتطبيق CAD/CAM.

حدود الاتصال وبيانات الاعتماد

بيانات الاعتمادغايةالحدود
رمز حامل التطبيققبول التطبيق المحلي لمسارات السايدكار المحمية.تم إنشاؤها/توفيرها لإطلاق السايدكار؛ يحصل عرض الويب عليه من خلال الاتصال الأصلي.
x-session-tokenحدد الحساب الذي يعمل خلف الطلب المقبول.تعود الجلسة الغائبة أو غير الصالحة أو منتهية الصلاحية أو المعزولة إلى ملف التعريف المحلي.
رمز الجهاز المرافقالسماح بهاتف مقترن بشكل فردي بمسارات البوابة.تم التحقق منه بواسطة بوابة HTTPS المنفصلة وقائمة الطرق/المسار المسموح بها.
رمز جسر الذكاء الاصطناعيكشف الإجراءات المسموح بها لمشروع واحد لوكيل خارجي.يقبل نقطتي نهاية جسر الإجراء ويفرض نطاق القراءة أو القراءة/الكتابة.
مفتاح واجهة برمجة التطبيقات للموفرمصادقة المكالمات النموذجية الصادرة.تتم إدارتها بواسطة خدمة بيانات الاعتماد السايدكار؛ ليس بديلا عن ترخيص التطبيق.
رمز جيثبتنفيذ عملية المرآة المطلوبة.المقدمة لتلك المكالمة من خلال x-github-token; لا مشروع بيانات لقطة.

التفويض متعدد الطبقات. إن تمرير البرنامج الوسيط لحامله لا يثبت ملكية رسم أو مشروع معين؛ تقوم المعالجات والمستودعات بفحص تلك الموارد. لا يؤدي الاقتران بالمثل إلى تحويل الهاتف إلى عميل سايدكار غير مقيد. راجع نقطة النهاية المحددة والسياسة المصاحبة قبل اختيار بيانات الاعتماد.

محول الترخيص هو apps/sidecar/src/http/authorization.ts. قرارات الرفيق والجسر تعيش في خدماتها الخاصة. يتيح الاحتفاظ بهذه المسارات منفصلة إبطال الجهاز المفقود أو رمز التكامل دون استبدال سر موفر الذكاء الاصطناعي.

عزل الفشل

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

لا يؤدي بالضرورة دفق AI المنفصل إلى إيقاف المحادثة من جانب الخادم. قم باستعادة حالة الجلسة قبل إعادة إرسال تعليمات التحرير. لا يؤدي سير العمل الفاشل إلى التراجع عن الالتزام الذي تم تشغيله. الدفع عن بعد غير الناجح لا يمحو التاريخ المحلي. تمنع هذه الفروق التعامل مع فشل الشبكة كما لو أن العملية المستمرة لم تحدث أبدًا.

بالنسبة لطلب واجهة برمجة التطبيقات الفاشل، سجل أسلوبه ومساره وحالته ومعرف نقطة النهاية والمعرفات غير السرية ذات الصلة. قارن الجري /api/openapi.json مع لقطة عقد التوثيق عندما تختلف إصدارات العميل والخادم. تجنب استكشاف الأخطاء وإصلاحها باستخدام رمز مميز من إطلاق سايدكار سابق.

لقطة معمارية حسب مسار المصدر

منطقةأين يعيشماذا تقرأ أولا
غلاف سطح المكتب (Rust)apps/desktop/src-tauri/src/sidecar.rs (مشرف)، commands.rs, updater.rs, menu.rs, tray.rs, secrets.rs
واجهة مستخدم سطح المكتبapps/desktop/src/app/, features/ (cAD، Cam، AI، Chat، Projects، Toolpaths، Plugins، ...)، viewport/, shared/
دخول السايدكارapps/sidecar/src/main.tsمصافحة جاهزة، طبقات في layers.ts، التكوين في config.ts
معالجات HTTPapps/sidecar/src/http/ملف واحد لكل مجموعة، على سبيل المثال. toolpath-generator.ts, ai.ts, kv.ts
الخدمات والمستودعاتapps/sidecar/src/services/, repos/cam-program.ts, companion.ts, auth-tokens.ts, storage.ts
عقدpackages/api/src/index.ts, groups/, errors.ts, client.ts
نواةpackages/core/src/cad/history.ts, cad/sketch.ts, cam/kernel/, cam/post/
مساعدpackages/ai/src/actions/, tools/, nikcli/, prompts/
تخزينpackages/db/src/index.ts, upgrade.ts, schema.ts
تاريخpackages/vcs/, packages/workflow/واجهة برمجة تطبيقات المستودع، والدمج، ومخطط سير العمل
رفيقapps/mobile/app/ الطرق, lib/ الاتصال والاقتران

التتبع: من الإطلاق إلى الطلب الأول

  1. يبدأ تاوري ويدخل المشرف sidecar.rs يولد رمزا عشوائيا.
  2. يولد sidecar-<triple> مع CADCAMFUN_TOKEN, CADCAMFUN_DATA_DIR و CADCAMFUN_MIGRATIONS_DIR.
  3. يقرأ السايدكار تكوينه، ويفتح SQLite (WAL، والمفاتيح الخارجية)، وينسخ احتياطيًا ويرحل إذا لزم الأمر، ويبني طبقات الخدمة الخاصة به.
  4. إنه يربط 127.0.0.1 على منفذ سريع الزوال ويطبع سطر JSON جاهز على stdout. ينتظر المشرف ما يصل إلى 60 ثانية لذلك.
  5. المشرف يصدر sidecar-status { state: "ready", port }; مكالمات عرض الويب get_sidecar_endpoint ل { baseUrl, token }.
  6. يتم بناء عرض الويب ApiClient.layer({ baseUrl, token }) ويبدأ تحميل المشاريع.

إذا خرجت السايدكار، يقوم المشرف بإعادة تشغيلها مرة واحدة ويعلن عن المنفذ الجديد؛ الفشل الثاني يترك الحالة عند failed. عند الخروج، يكتب المشرف سطر إيقاف التشغيل، وينتظر 2 ثانية، ثم يحصد العملية؛ تقوم طبقة قاعدة البيانات بنقاط فحص WAL عند إغلاق نطاقها.

التتبع: طلب تصنيع

  1. تلتقط مساحة عمل CAM عناصر الرسم والمخزون والمكالمات POST /api/toolpaths/manufacture.
  2. تقبل البرمجيات الوسيطة للحامل الطلب؛ يتم فك تشفير الجسم ضد CamKernelRequest.
  3. runKernelRequest في services/cam-program.ts المكالمات cam.kernel.jobOfSnapshot; تصبح مشكلات الإعداد 400.
  4. cam.kernel.runJob يخطط العمليات أو يتابعها، ويحسب بيانات القطع، وينشئ مسارات الأدوات، وينشر NC لهجة الجهاز ويعيد تشغيلها على مخزون فوكسل لتقييم المطالبات.
  5. يتم فك تشفير النتيجة ضد CamKernelResult وعاد. لا يتم تخزين أي شيء حتى يقوم العميل بحفظ مسار الأدوات باستخدام مستند محمول، وعند هذه النقطة يقوم السايدكار بإعادة تشغيل الطلب الذي تم التقاطه ومقارنته.

في 3د

الرسم البياني لتبعية مساحة العمل اسحب إلى المدار · قم بالتمرير للتكبير · اسحب بزر الماوس الأيمن للتحريك
جميع حزم مساحة العمل 13 من ملفات package.json الخاصة بها؛ كل سطر عبارة عن مساحة عمل:* التبعية (17 في المجموع). الصفوف هي عمق التبعية: الحزم التي لا تحتوي على تبعيات مساحة العمل في المقدمة، والسايدكار، التي تعتمد على 8 منها، في الخلف. المربعات البرتقالية هي تطبيقات.