Dokumentation
Technologie-Stack
Versionen und Verantwortlichkeiten aus Arbeitsbereichsmanifesten und Laufzeitkonfiguration.
Automatisch aus dem Englischen übersetzt. Englisches Original ansehen
Laufzeit- und Service-Framework
Das Stammmanifest wählt aus bun@1.4.4 als Paketmanager. Bun installiert die Arbeitsbereiche und führt sie aus bun:test, typprüfungen mit dem eingebauten bun check, bedient den Sidecar, stellt SQLite- und Passwort-Hashing-APIs bereit und kompiliert die Sidecar-Binärdatei. Die Desktop-Frontend-Entwicklung nutzt Vite und die native Verpackung nutzt Rust und Tauri.
Nutzung von Anwendungsdiensten effect@4.0.0-rc.112. Für alle Arbeitsbereiche, die von Effect abhängen, einschließlich API, Datenbank, Kern, Desktop, Workflow und Sidecar, wird genau dieselbe Version deklariert. Root-Überschreibungen richten die Knotenplattformpakete an dieser Version aus. Effect stellt typisierte Fehler, Schemata, Dienstkontext, Ebenen, Parallelität und HTTP-APIs bereit.
Der Code verwendet die Dienstform v4 Context.Service und HTTP-Module unten effect/unstable. Versionsangepasste Dokumentation ist unter installiert packages/db/node_modules/effect/ai-docs/src/. Sorgen Sie dafür, dass Abhängigkeits-Upgrades zwischen den Verbrauchern koordiniert werden.
Datenbank und Verträge
Persistenz verwendet drizzle-orm@1.0.0-beta.22 mit bun:sqlite. Bei der Generierung der Datenbankmigration wird der Abgleich verwendet drizzle-kit freigeben. Das Schema ist TypeScript; Die generierten Migrationsverzeichnisse enthalten die bei Upgrades verwendeten SQL- und Migrationsmetadaten.
Wirkung HttpApi definiert den HTTP-Vertrag. Der Workspace-Codegenerator kompiliert diesen Vertrag zu Promise- und Effect-Client-Ausgaben. Zod ist auch in API- und KI-Abhängigkeiten für Integrationen vorhanden, die es erfordern; Es ersetzt nicht die Grenzschemata von HttpApi.
Desktop und Grafik
Der Desktop verwendet solid-js ^1.9.0, @solidjs/router ^0.15.0, vite ^7.0.0und Tailwind CSS 3. Die Workbench verwendet Kobalte-Steuerelemente, Lucide-Symbole, Monaco-Bearbeitung und Chart.js, wo die entsprechenden Funktionen sie benötigen.
Das Ansichtsfenster verwendet three ^0.180.0. Die Kerngeometrie ist vom Rendering getrennt; three-csg-ts und occt-import-js 0.0.23 unterstützt zusätzliche Desktop-Geometrie/Importpfade. Tauri v2 bietet nativen API-Zugriff, Dialoge, Shell-Vorgänge, Protokollierung, Betriebssystemintegration und Updater-Integration über installierte Plugins.
KI-Laufzeit
@cadcamfun/ai stifte @nikcli-ai/sdk-next 1.428.0 und ai 7.0.127. Zu den direkten Modelladaptern gehören Anthropic, OpenAI, OpenAI-kompatible Anbieter und das AI SDK-Gateway. Der Sidecar wählt standardmäßig den eingebetteten Nikcli-Host oder den direkten Host aus CADCAMFUN_AI_HOST.
Anwendungstools und Aktionsschemata stehen über dem Anbietertransport. Durch einen Anbieterwechsel entsteht kein zweiter Maßnahmenkatalog. Modellkonnektivität, Anmeldeinformationen, Abbruch und Sitzungsverhalten werden im dokumentiert KI-Referenz.
Mobil und Dokumentation
Das mobile Manifest verwendet Expo ~57.0.27, Reagieren 19.2.3, Native reagieren 0.86.3und Expo Router ~57.0.25. Der benutzerdefinierte Begleittransport ist ein natives Modul. NativeWind, Reanimated, Gesture Handler, SecureStore und lokale Authentifizierung unterstützen die mobile Anwendung.
Diese Seite verwendet Astro ^5.14.1 mit dem Cloudflare-Adapter, MDX- und Tailwind-Integrationen. Dokumentationsseiten werden vorgerendert; Assistent, Markdown, Studio-Fallback und Artefaktrouten werden auf dem Server ausgeführt. Die lokale Studio-API wird in Bun ausgeführt, da sie verwendet wird bun:sqlite.
Die Typprüfung verwendet den integrierten Prüfer von Bun. bun check, das die Daten jedes Arbeitsbereichs liest tsconfig.json und meldet die gleichen Diagnosen wie tsc. Die Manifestbereiche beschreiben zulässige Abhängigkeitsversionen. Die Sperrdatei zeichnet die installierte Auflösung auf.
Die Dokumentationsseite verwendet Astro 5 mit dem Cloudflare-Adapter, MDX und Tailwind (packages/web/package.json). Die Desktop-Webansicht erreicht nativen Code @tauri-apps/api v2.
Was in jeder Umgebung ausgeführt wird
| Umfeld | Code, den es ausführt | Relevante Einschränkung |
|---|---|---|
| Bun-Sidecar | Effektserver/Dienste, Drizzle, bun:sqlite, anbieter-Clients, Workflow- und Historien-Orchestrierung. | Ein Browser oder Cloudflare Worker kann die SQLite-Laufzeitumgebung von Bun nicht direkt ersetzen. |
| Desktop-Webansicht | SolidJS-Zustand und -Interaktion, Kerngeometrie, Three.js, API-Client. | Native Operationen erfordern Tauri-Befehle; Die Browservorschau bietet eine andere Integrationsumgebung. |
| Rustschale | Tauri-Lebenszyklus, natives Fenster/Menü/Tray, sichere Befehle, Updater. | Bei einem erfolgreichen Vite-Build wird das native Anwendungspaket nicht erstellt oder validiert. |
| Expo-Bewerbung | Reagieren Sie auf native Bildschirme und nativen Begleittransport. | Expo Go fehlt das benutzerdefinierte Pinning-Modul; Beim JavaScript-Export wird kein natives Installationsprogramm erstellt. |
| Cloudflare-Dokumentationsarbeiter | Serverrouten für Markdown, Assistentenanfragen und Leitartefakte. | Es hat keinen impliziten Zugriff auf eine lokale Sidecar- oder SQLite-Datei. Bindungen und Backend-Konfiguration sind explizit. |
| Lokaler Studio-Prozess | Bun HTTP-Server und direkter Lesezugriff über ausgewählte Drizzle-Tabellen. | Die konfigurierte vorhandene Datenbank und Kontositzung sind unabhängig von der Desktoperkennung. |
Verwenden Sie das Build-Artefakt, das der getesteten Umgebung entspricht. Frontend-Ausgaben, ein kompiliertes Sidecar, Migrationsressourcen, ein exportiertes Mobilpaket und signierte native Installationsprogramme sind unterschiedliche Ausgaben, selbst wenn ein Befehl mehrere Phasen koordiniert.
Angepinnte Versionen
| Schicht | Technologie | Version (aus Paketmanifesten) |
|---|---|---|
| Paketmanager / Laufzeit | Bun | 1.4.4 (packageManager) |
| Service-Framework | Effect | 4.0.0-rc.112 (alle Arbeitsbereiche, mit Platform-Bun und Opentelemetry in derselben Version) |
| Datenbank | nieselregen-Orm / Nieselregen-Kit, bun:sqlite | 1.0.0-beta.22 |
| Desktop-Shell | Tauri | 2 (Rostkisten und @tauri-apps/* ^2) |
| Desktop-Benutzeroberfläche | SolidJS, @solidjs/router, Kobalte | ^1.9.0, ^0.15.0, ^0.13.0 |
| 3D | three.js, three-csg-ts | ^0.180.0, ^3.2.0 |
| STEP-Import | occt-import-js | 0.0.23 |
| Code-Editor | monaco-Herausgeber | ^0.57.0 |
| Bundler | Vite | ^7.0.0 |
| KI | ai (Vercel AI SDK), @ai-sdk/anthropic, openai, Gateway, openai-kompatibel, @nikcli-ai/sdk-next | 7.0.127, 4.0.71, 4.0.83, 4.0.103, 3.0.62, 1.428.0 |
| Validierung (KI-Tools) | zod | ^4.1.8 |
| Telemetrie | OpenTelemetry SDK + OTLP/HTTP-Exporteure | aPI 1.9.1, SDK 2.12.0, Exporteure 0.223.0 |
| Mobile | Expo, React Native, Reagieren | ~57, 0.86.3, 19.2.3 |
| Dokumente | Astro, Tailwind, Cloudflare-Adapter, Wrangler | ^5.14.1, ^3.4.17, ^12.0.0, 4.103.0 |
| Typprüfung | Bun bun check, TypeScript (nur Editor-Unterstützung) | 1.4.4, ^5.9.0 |
| Monorepo-Aufgaben | turbo | ^2.11.7 |
Rustkisten in der Desktop-Shell
| Kiste | Verwendet für |
|---|---|
tauri (tray-Symbol, MacOS-Private-API) | Fenster, Tablett, IPC |
tauri-plugin-shell | Starten der Sidecar-Binärdatei |
tauri-plugin-dialog, -fs, -opener | Dateiauswahl, Dateizugriff, Öffnungspfade und URLs |
tauri-plugin-updater | Signierte In-App-Updates |
tauri-plugin-log, -os | Protokollierung, Plattformerkennung |
tauri-plugin-single-instance, -window-state | Eine laufende App; Fenstergeometrie wiederherstellen (Desktop-Ziele) |
tauri-plugin-liquid-glass (optional) | macOS-Glaseffekt mit einem Lebendigkeits-Fallback |
tokio, serde, thiserror, getrandom, log | Asynchrone Überwachung, IPC-Payloads, Tippfehler, Starttokens |
Warum diese Entscheidungen
- Bun führt die Tests, die Skripte und den Sidecar aus und kompiliert den Sidecar in eine native Binärdatei, sodass der Desktop ohne separate JavaScript-Laufzeit ausgeliefert wird.
- Effect gibt für jeden Dienst typisierte Fehler, bereichsbezogene Ressourcen (das Datenbankhandle und untergeordnete Prozesse werden beim Herunterfahren freigegeben) und eine HttpApi-Definition an, die von Servern, Clients, generierten SDKs und der API-Referenz verwendet wird.
- SQLite hält jede Installation in sich geschlossen: eine Datei plus eine WAL, die vor jedem Schema-Upgrade gesichert wird.
- Tauri nutzt die System-Webansicht und eine kleine Rust-Shell, die den Sidecar-Prozess, native Menüs, den Updater und den Schlüsselbund besitzt.
- three.js rendert das Ansichtsfenster; Dieselbe Bibliothek zeichnet die 3D-Vorschauen auf diesen Dokumentationsseiten.